以下代码段和图表显示了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()
答案 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')