CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
InfiniteLine.py84 linesDownload Raw Back to examples
1"""2This example demonstrates some of the plotting items available in pyqtgraph.3"""4 5import numpy as np6 7import pyqtgraph as pg8from pyqtgraph.Qt import QtCore9 10app = pg.mkQApp("InfiniteLine Example")11win = pg.GraphicsLayoutWidget(show=True, title="Plotting items examples")12win.resize(1000,600)13 14# Enable antialiasing for prettier plots15pg.setConfigOptions(antialias=True)16 17# Create a plot with some random data18p1 = win.addPlot(title="Plot Items example", y=np.random.normal(size=100, scale=10), pen=0.5)19p1.setYRange(-40, 40)20 21# Add three infinite lines with labels22inf1 = pg.InfiniteLine(movable=True, angle=90, label='x={value:0.2f}', 23                       labelOpts={'position':0.1, 'color': (200,200,100), 'fill': (200,200,200,50), 'movable': True})24inf2 = pg.InfiniteLine(movable=True, angle=0, pen=(0, 0, 200), bounds = [-20, 20], hoverPen=(0,200,0), label='y={value:0.2f}mm', 25                       labelOpts={'color': (200,0,0), 'movable': True, 'fill': (0, 0, 200, 100)})26inf3 = pg.InfiniteLine(movable=True, angle=45, pen='g', label='diagonal',27                       labelOpts={'rotateAxis': [1, 0], 'fill': (0, 200, 0, 100), 'movable': True})28inf1.setPos([2,2])29p1.addItem(inf1)30p1.addItem(inf2)31p1.addItem(inf3)32 33targetItem1 = pg.TargetItem()34 35targetItem2 = pg.TargetItem(36    pos=(30, 5),37    size=20,38    symbol="star",39    pen="#F4511E",40    label="vert={1:0.2f}",41    labelOpts={42        "offset": QtCore.QPoint(15, 15)43    }44)45targetItem2.label().setAngle(45)46 47targetItem3 = pg.TargetItem(48    pos=(10, 10),49    size=10,50    symbol="x",51    pen="#00ACC1",52)53targetItem3.setLabel(54    "Third Label",55    {56        "anchor": QtCore.QPointF(0.5, 0.5),57        "offset": QtCore.QPointF(30, 0),58        "color": "#558B2F",59        "rotateAxis": (0, 1)60    }61)62 63 64def callableFunction(x, y):65    return f"Square Values: ({x**2:.4f}, {y**2:.4f})"66 67targetItem4 = pg.TargetItem(68    pos=(10, -10),69    label=callableFunction70)71 72p1.addItem(targetItem1)73p1.addItem(targetItem2)74p1.addItem(targetItem3)75p1.addItem(targetItem4)76 77# Add a linear region with a label78lr = pg.LinearRegionItem(values=[70, 80])79p1.addItem(lr)80label = pg.InfLineLabel(lr.lines[1], "region 1", position=0.95, rotateAxis=(1,0), anchor=(1, 1))81 82if __name__ == '__main__':83    pg.exec()84 
Aluode/PerceptionLabPortable · CoolFace