e7ceebd867
* LegendItem: fix spelling mistake * LegendItem: remove unused curRow variable * LegendItem: correct calculation of rowCount Previously, rowCount would never be updated unless setColumnCount() was called. This fixes that issue. It also fixes that setColumnCount() rounded down (floored) the number of rows, instead of providing an accurate number: e.g. 4 items in 3 columns would yield rowCount=1, when it should be 2 * LegendItem: remove rowCount argument (not implemented) Logic to actually use the rowCount argument was not implemented. Users might expect rowCount to limit the number of rows to e.g. 1, but that is not what the current code does (it only works with limiting the number of columns). Thus, we were exposing an unused/misleading parameter to users. This can and should be reverted if the logic for limiting the number of rows is added. * LegendItem: add colCount docs * test (LegendItem): remove unused curRow variable * test (LegendItem): check increasing rowCount as add items * Fixed logic in placement of items in legend with multiple columns * Actual row count here should be 2, not 3 Co-authored-by: Ogi Moore <ognyan.moore@gmail.com>
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Demonstrates basic use of LegendItem
|
|
|
|
"""
|
|
import initExample ## Add path to library (just for examples; you do not need this)
|
|
|
|
import pyqtgraph as pg
|
|
from pyqtgraph.Qt import QtCore, QtGui
|
|
import numpy as np
|
|
|
|
win = pg.plot()
|
|
win.setWindowTitle('pyqtgraph example: BarGraphItem')
|
|
|
|
# # option1: only for .plot(), following c1,c2 for example-----------------------
|
|
# win.addLegend(frame=False, colCount=2)
|
|
|
|
# bar graph
|
|
x = np.arange(10)
|
|
y = np.sin(x+2) * 3
|
|
bg1 = pg.BarGraphItem(x=x, height=y, width=0.3, brush='b', pen='w', name='bar')
|
|
win.addItem(bg1)
|
|
|
|
# curve
|
|
c1 = win.plot([np.random.randint(0,8) for i in range(10)], pen='r', symbol='t', symbolPen='r', symbolBrush='g', name='curve1')
|
|
c2 = win.plot([2,1,4,3,1,3,2,4,3,2], pen='g', fillLevel=0, fillBrush=(255,255,255,30), name='curve2')
|
|
|
|
# scatter plot
|
|
s1 = pg.ScatterPlotItem(size=10, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120), name='scatter')
|
|
spots = [{'pos': [i, np.random.randint(-3, 3)], 'data': 1} for i in range(10)]
|
|
s1.addPoints(spots)
|
|
win.addItem(s1)
|
|
|
|
# # option2: generic method------------------------------------------------
|
|
legend = pg.LegendItem((80,60), offset=(70,20))
|
|
legend.setParentItem(win.graphicsItem())
|
|
legend.addItem(bg1, 'bar')
|
|
legend.addItem(c1, 'curve1')
|
|
legend.addItem(c2, 'curve2')
|
|
legend.addItem(s1, 'scatter')
|
|
|
|
## Start Qt event loop unless running in interactive mode or using pyside.
|
|
if __name__ == '__main__':
|
|
import sys
|
|
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
|
|
QtGui.QApplication.instance().exec_()
|