python - Matplotlib 标记可快速绘制和渲染

标签 python matplotlib plot

我正在使用 matplotlib 绘制 5 组大约。每个 400,000 个数据点。尽管每组点都以不同的颜色绘制,但我需要不同的标记来供人们阅读黑白打印输出上的图表。我面临的问题是 http://matplotlib.org/api/markers_api.html 文档中几乎所有可能的标记都可用。显示时花费太多时间进行绘制和渲染。我只能找到两个可以快速绘制和渲染的标记,它们是“-”和“--”。这是我的代码:

plt.plot(series1,'--',label='Label 1',lw=5)
plt.plot(series2,'-',label='Label 2',lw=5)
plt.plot(series3,'^',label='Label 3',lw=5)
plt.plot(series4,'*',label='Label 4',lw=5)
plt.plot(series5,'_',label='Label 5',lw=5)

我尝试了多个标记。系列 1 和系列 2 可以快速绘图并立即渲染。但系列 3、4 和 5 需要很长时间才能绘制和展示。

我无法弄清楚这背后的原因。有人知道更多可以快速绘制和渲染的标记吗?

最佳答案

前两个('--''-')是线条样式而不是标记。这就是为什么它们渲染得更快。

绘制约 400,000 个标记是没有意义的。您将无法看到所有这些点...但是,您可以做的就是仅绘制点的子集。 因此,添加包含所有数据的行(即使您也可以对其进行二次采样),然后添加仅包含标记的第二个“行”。 为此,您需要一个“x”向量,您也可以对其进行二次采样:

# define the number of markers you want
nrmarkers = 100

# define a x-vector
x = np.arange(len(series3))
# calculate the subsampling step size
subsample = int(len(series3) / nrmarkers)
# plot the line
plt.plot(x, series3, color='g', label='Label 3', lw=5)
# plot the markers (using every `subsample`-th data point)
plt.plot(x[::subsample], series3[::subsample], color='g', 
        lw=5, linestyle='', marker='*')

# similar procedure for series4 and series5

注意:代码是从头开始编写的,未经测试

关于python - Matplotlib 标记可快速绘制和渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35788860/

相关文章:

python - 不包括特定列的数据框列切片

python - 在 PyGObject 中设置样式属性

python - 选择与随机播放,Python

matlab - 颜色和标记的图例条目

r - 如何在 R 中绘制数据子集与整个数据集的箱线图?

javascript - 根据它们之间的距离绘制 4 个点?

python - 搜索最不像一组位串的位串

arrays - 在数组中的元素之间进行插值

python - 按 pandas 中的日期分组以绘制分类分布

python - 具有线条和面积样式的 Matplotlib 图例