Fix incorrect clipping of horizontal axis when stopAxisAtTick is set (#932)
Horizontal axis are clipeed incorrectly because the code always takes the vertical coordinate of the span even if the axis is horizontal.
This commit is contained in:
parent
f239276cdc
commit
9b8ef188a5
|
@ -900,16 +900,20 @@ class AxisItem(GraphicsWidget):
|
||||||
|
|
||||||
|
|
||||||
if self.style['stopAxisAtTick'][0] is True:
|
if self.style['stopAxisAtTick'][0] is True:
|
||||||
stop = max(span[0].y(), min(map(min, tickPositions)))
|
minTickPosition = min(map(min, tickPositions))
|
||||||
if axis == 0:
|
if axis == 0:
|
||||||
|
stop = max(span[0].y(), minTickPosition)
|
||||||
span[0].setY(stop)
|
span[0].setY(stop)
|
||||||
else:
|
else:
|
||||||
|
stop = max(span[0].x(), minTickPosition)
|
||||||
span[0].setX(stop)
|
span[0].setX(stop)
|
||||||
if self.style['stopAxisAtTick'][1] is True:
|
if self.style['stopAxisAtTick'][1] is True:
|
||||||
stop = min(span[1].y(), max(map(max, tickPositions)))
|
maxTickPosition = max(map(max, tickPositions))
|
||||||
if axis == 0:
|
if axis == 0:
|
||||||
|
stop = min(span[1].y(), maxTickPosition)
|
||||||
span[1].setY(stop)
|
span[1].setY(stop)
|
||||||
else:
|
else:
|
||||||
|
stop = min(span[1].x(), maxTickPosition)
|
||||||
span[1].setX(stop)
|
span[1].setX(stop)
|
||||||
axisSpec = (self.pen(), span[0], span[1])
|
axisSpec = (self.pen(), span[0], span[1])
|
||||||
|
|
||||||
|
|
30
pyqtgraph/graphicsItems/tests/test_AxisItem.py
Normal file
30
pyqtgraph/graphicsItems/tests/test_AxisItem.py
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
import pyqtgraph as pg
|
||||||
|
|
||||||
|
app = pg.mkQApp()
|
||||||
|
|
||||||
|
def test_AxisItem_stopAxisAtTick(monkeypatch):
|
||||||
|
def test_bottom(p, axisSpec, tickSpecs, textSpecs):
|
||||||
|
assert view.mapToView(axisSpec[1]).x() == 0.25
|
||||||
|
assert view.mapToView(axisSpec[2]).x() == 0.75
|
||||||
|
|
||||||
|
def test_left(p, axisSpec, tickSpecs, textSpecs):
|
||||||
|
assert view.mapToView(axisSpec[1]).y() == 0.875
|
||||||
|
assert view.mapToView(axisSpec[2]).y() == 0.125
|
||||||
|
|
||||||
|
plot = pg.PlotWidget()
|
||||||
|
view = plot.plotItem.getViewBox()
|
||||||
|
bottom = plot.getAxis("bottom")
|
||||||
|
bottom.setRange(0, 1)
|
||||||
|
bticks = [(0.25, "a"), (0.6, "b"), (0.75, "c")]
|
||||||
|
bottom.setTicks([bticks, bticks])
|
||||||
|
bottom.setStyle(stopAxisAtTick=(True, True))
|
||||||
|
monkeypatch.setattr(bottom, "drawPicture", test_bottom)
|
||||||
|
|
||||||
|
left = plot.getAxis("left")
|
||||||
|
lticks = [(0.125, "a"), (0.55, "b"), (0.875, "c")]
|
||||||
|
left.setTicks([lticks, lticks])
|
||||||
|
left.setRange(0, 1)
|
||||||
|
left.setStyle(stopAxisAtTick=(True, True))
|
||||||
|
monkeypatch.setattr(left, "drawPicture", test_left)
|
||||||
|
|
||||||
|
plot.show()
|
Loading…
Reference in New Issue
Block a user