本文整理汇总了Python中silx.gui.plot.PlotWidget.getXAxis方法的典型用法代码示例。如果您正苦于以下问题:Python PlotWidget.getXAxis方法的具体用法?Python PlotWidget.getXAxis怎么用?Python PlotWidget.getXAxis使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类silx.gui.plot.PlotWidget
的用法示例。
在下文中一共展示了PlotWidget.getXAxis方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestAxisSync
# 需要导入模块: from silx.gui.plot import PlotWidget [as 别名]
# 或者: from silx.gui.plot.PlotWidget import getXAxis [as 别名]
class TestAxisSync(TestCaseQt):
"""Tests AxisSync class"""
def setUp(self):
TestCaseQt.setUp(self)
self.plot1 = PlotWidget()
self.plot2 = PlotWidget()
self.plot3 = PlotWidget()
def tearDown(self):
self.plot1 = None
self.plot2 = None
self.plot3 = None
TestCaseQt.tearDown(self)
def testMoveFirstAxis(self):
"""Test synchronization after construction"""
_sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
self.plot1.getXAxis().setLimits(10, 500)
self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500))
def testMoveSecondAxis(self):
"""Test synchronization after construction"""
_sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
self.plot2.getXAxis().setLimits(10, 500)
self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500))
def testMoveTwoAxes(self):
"""Test synchronization after construction"""
_sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
self.plot1.getXAxis().setLimits(1, 50)
self.plot2.getXAxis().setLimits(10, 500)
self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500))
def testDestruction(self):
"""Test synchronization when sync object is destroyed"""
sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
del sync
self.plot1.getXAxis().setLimits(10, 500)
self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500))
self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500))
self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500))
def testAxisDestruction(self):
"""Test synchronization when an axis disappear"""
_sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
# Destroy the plot is possible
import weakref
plot = weakref.ref(self.plot2)
self.plot2 = None
result = self.qWaitForDestroy(plot)
if not result:
# We can't test
self.skipTest("Object not destroyed")
self.plot1.getXAxis().setLimits(10, 500)
self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500))
def testStop(self):
"""Test synchronization after calling stop"""
sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
sync.stop()
self.plot1.getXAxis().setLimits(10, 500)
self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500))
self.assertNotEqual(self.plot2.getXAxis().getLimits(), (10, 500))
self.assertNotEqual(self.plot3.getXAxis().getLimits(), (10, 500))
def testStopMovingStart(self):
"""Test synchronization after calling stop, moving an axis, then start again"""
sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
sync.stop()
self.plot1.getXAxis().setLimits(10, 500)
self.plot2.getXAxis().setLimits(1, 50)
self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500))
sync.start()
# The first axis is the reference
self.assertEqual(self.plot1.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot2.getXAxis().getLimits(), (10, 500))
self.assertEqual(self.plot3.getXAxis().getLimits(), (10, 500))
def testDoubleStop(self):
"""Test double stop"""
sync = SyncAxes([self.plot1.getXAxis(), self.plot2.getXAxis(), self.plot3.getXAxis()])
sync.stop()
self.assertRaises(RuntimeError, sync.stop)
def testDoubleStart(self):
#.........这里部分代码省略.........
示例2: TestLimitConstaints
# 需要导入模块: from silx.gui.plot import PlotWidget [as 别名]
# 或者: from silx.gui.plot.PlotWidget import getXAxis [as 别名]
class TestLimitConstaints(unittest.TestCase):
"""Tests setLimitConstaints class"""
def setUp(self):
self.plot = PlotWidget()
def tearDown(self):
self.plot = None
def testApi(self):
"""Test availability of the API"""
self.plot.getXAxis().setLimitsConstraints(minPos=1, maxPos=10)
self.plot.getXAxis().setRangeConstraints(minRange=1, maxRange=1)
self.plot.getYAxis().setLimitsConstraints(minPos=1, maxPos=10)
self.plot.getYAxis().setRangeConstraints(minRange=1, maxRange=1)
def testXMinMax(self):
"""Test limit constains on x-axis"""
self.plot.getXAxis().setLimitsConstraints(minPos=0, maxPos=100)
self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101)
self.assertEqual(self.plot.getXAxis().getLimits(), (0, 100))
self.assertEqual(self.plot.getYAxis().getLimits(), (-1, 101))
def testYMinMax(self):
"""Test limit constains on y-axis"""
self.plot.getYAxis().setLimitsConstraints(minPos=0, maxPos=100)
self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101)
self.assertEqual(self.plot.getXAxis().getLimits(), (-1, 101))
self.assertEqual(self.plot.getYAxis().getLimits(), (0, 100))
def testMinXRange(self):
"""Test min range constains on x-axis"""
self.plot.getXAxis().setRangeConstraints(minRange=100)
self.plot.setLimits(xmin=1, xmax=99, ymin=1, ymax=99)
limits = self.plot.getXAxis().getLimits()
self.assertEqual(limits[1] - limits[0], 100)
limits = self.plot.getYAxis().getLimits()
self.assertNotEqual(limits[1] - limits[0], 100)
def testMaxXRange(self):
"""Test max range constains on x-axis"""
self.plot.getXAxis().setRangeConstraints(maxRange=100)
self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101)
limits = self.plot.getXAxis().getLimits()
self.assertEqual(limits[1] - limits[0], 100)
limits = self.plot.getYAxis().getLimits()
self.assertNotEqual(limits[1] - limits[0], 100)
def testMinYRange(self):
"""Test min range constains on y-axis"""
self.plot.getYAxis().setRangeConstraints(minRange=100)
self.plot.setLimits(xmin=1, xmax=99, ymin=1, ymax=99)
limits = self.plot.getXAxis().getLimits()
self.assertNotEqual(limits[1] - limits[0], 100)
limits = self.plot.getYAxis().getLimits()
self.assertEqual(limits[1] - limits[0], 100)
def testMaxYRange(self):
"""Test max range constains on y-axis"""
self.plot.getYAxis().setRangeConstraints(maxRange=100)
self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101)
limits = self.plot.getXAxis().getLimits()
self.assertNotEqual(limits[1] - limits[0], 100)
limits = self.plot.getYAxis().getLimits()
self.assertEqual(limits[1] - limits[0], 100)
def testChangeOfConstraints(self):
"""Test changing of the constraints"""
self.plot.getXAxis().setRangeConstraints(minRange=10, maxRange=10)
# There is no more constraints on the range
self.plot.getXAxis().setRangeConstraints(minRange=None, maxRange=None)
self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101)
self.assertEqual(self.plot.getXAxis().getLimits(), (-1, 101))
def testSettingConstraints(self):
"""Test setting a constaint (setLimits first then the constaint)"""
self.plot.setLimits(xmin=-1, xmax=101, ymin=-1, ymax=101)
self.plot.getXAxis().setLimitsConstraints(minPos=0, maxPos=100)
self.assertEqual(self.plot.getXAxis().getLimits(), (0, 100))
示例3: BackgroundWidget
# 需要导入模块: from silx.gui.plot import PlotWidget [as 别名]
# 或者: from silx.gui.plot.PlotWidget import getXAxis [as 别名]
#.........这里部分代码省略.........
:param dict ddict: Input dictionary, must have the same
keys as the dictionary output by :meth:`getParameters`
"""
return self.parametersWidget.setParameters(ddict)
def setData(self, x, y, xmin=None, xmax=None):
"""Set data for the original curve, and _update strip and snip
curves accordingly.
:param x: Array or sequence of curve abscissa values
:param y: Array or sequence of curve ordinate values
:param xmin: Min value to be displayed on the X axis
:param xmax: Max value to be displayed on the X axis
"""
self._x = x
self._y = y
self._xmin = xmin
self._xmax = xmax
self._update(resetzoom=True)
def _slot(self, ddict):
self._update()
def _update(self, resetzoom=False):
"""Compute strip and snip backgrounds, update the curves
"""
if self._y is None:
return
pars = self.getParameters()
# smoothed data
y = numpy.ravel(numpy.array(self._y)).astype(numpy.float)
if pars["SmoothingFlag"]:
ysmooth = filters.savitsky_golay(y, pars['SmoothingWidth'])
f = [0.25, 0.5, 0.25]
ysmooth[1:-1] = numpy.convolve(ysmooth, f, mode=0)
ysmooth[0] = 0.5 * (ysmooth[0] + ysmooth[1])
ysmooth[-1] = 0.5 * (ysmooth[-1] + ysmooth[-2])
else:
ysmooth = y
# loop for anchors
x = self._x
niter = pars['StripIterations']
anchors_indices = []
if pars['AnchorsFlag'] and pars['AnchorsList'] is not None:
ravelled = x
for channel in pars['AnchorsList']:
if channel <= ravelled[0]:
continue
index = numpy.nonzero(ravelled >= channel)[0]
if len(index):
index = min(index)
if index > 0:
anchors_indices.append(index)
stripBackground = filters.strip(ysmooth,
w=pars['StripWidth'],
niterations=niter,
factor=pars['StripThreshold'],
anchors=anchors_indices)
if niter >= 1000:
# final smoothing
stripBackground = filters.strip(stripBackground,
w=1,
niterations=50*pars['StripWidth'],
factor=pars['StripThreshold'],
anchors=anchors_indices)
if len(anchors_indices) == 0:
anchors_indices = [0, len(ysmooth)-1]
anchors_indices.sort()
snipBackground = 0.0 * ysmooth
lastAnchor = 0
for anchor in anchors_indices:
if (anchor > lastAnchor) and (anchor < len(ysmooth)):
snipBackground[lastAnchor:anchor] =\
filters.snip1d(ysmooth[lastAnchor:anchor],
pars['SnipWidth'])
lastAnchor = anchor
if lastAnchor < len(ysmooth):
snipBackground[lastAnchor:] =\
filters.snip1d(ysmooth[lastAnchor:],
pars['SnipWidth'])
self.graphWidget.addCurve(x, y,
legend='Input Data',
replace=True,
resetzoom=resetzoom)
self.graphWidget.addCurve(x, stripBackground,
legend='Strip Background',
resetzoom=False)
self.graphWidget.addCurve(x, snipBackground,
legend='SNIP Background',
resetzoom=False)
if self._xmin is not None and self._xmax is not None:
self.graphWidget.getXAxis().setLimits(self._xmin, self._xmax)