PyQtGraph是否可以选择仅在某些点上放置符号,类似于Matplotlib的markevery关键字?

时间:2018-04-17 20:00:58

标签: python pyqtgraph

以下代码段和图表显示了Matplotlib的markevery关键字如何方便地将标记放置在线上,而不会通过标记大型数据集中的每个点来使绘图混乱。 PyQtGraph中是否有类似的功能,或者我只需要调用两次以将符号放在数据的子集上?

from matplotlib import pyplot as plt
import pyqtgraph as pg
import numpy as np

x = np.linspace(0, 10, 151)
y = x**2

pg.plot(x, y, symbol='o')

plt.plot(x, y, marker='o')
plt.plot(x, y+10, marker='o', markevery=10)
plt.show()

enter image description here

1 个答案:

答案 0 :(得分:1)

如果pyqtgraph中不存在此关键字,则只需使用以下代码:

pg.plot([j for i, j in enumerate(x) if i%10==0], [j for i, j in enumerate(y) if i%10==0], symbol='o')

您可以将i%10==0替换为i%z==0,其中z等同于markevery整数。

- 或 -

def pg_markevery(arr, markevery):
    return [j for i, j in enumerate(arr) if i%markevery==0]

pg.plot(pg_markevery(x, markevery=10), pg_markevery(y, markevery=10), symbol='o')