我正在尝试使用pyqtgraph从包含空值(来自pandas的数据)的数据中生成图表。
pyqtgraph - yellow circle has null values
我希望使用pyqtgraph的图形与excel图形相同。换句话说,该区域中没有具有空值的行。
答案 0 :(得分:4)
使用yourcurve.setData(x, y, connect="finite")
Set data
正是您正在寻找的。
引用有关 connect 关键字的文档:
默认为全部,表示完全连接。 对仅会导致 要绘制的偶数段。 有限会导致细分 如果它们附加到nan或inf值,则省略。对于任何其他 连接,指定一个布尔值数组。
这是一个例子
import numpy as np
import pyqtgraph as pg
from PyQt4 import QtCore
a = np.array([1, 2, 3, np.nan, 5, 6, 7, np.nan, 9, 10, 11])
b = np.array([1, 2, 3, np.nan, 3, 2, 1, np.nan, 1, 2, 3])
c = b+3
w = pg.PlotWindow()
finitecurve = pg.PlotDataItem(a, b, connect="finite", pen=(255, 255, 0))
normalcurve = pg.PlotDataItem(a, c, pen=(255, 0, 0))
w.addItem(normalcurve)
w.addItem(finitecurve)
w.show()
if __name__ == '__main__':
import sys
if sys.flags.interactive != 1 or not hasattr(QtCore, 'PYQT_VERSION'):
pg.QtGui.QApplication.exec_()