Python matplotlib 用不同颜色绘制数组

1 投票
1 回答
1678 浏览
提问于 2025-04-16 23:47

我有一个文件,这个文件把来自不同来源的数据集合在一起,但保持了相同的格式。我想用不同的颜色来绘制这些数据,以便能区分出数据集的不同来源。例如,数据文件中的几行看起来是这样的:

# Source measurement1 measurement2 error color
SiteA  543.2 12.3 0.01 blue
SiteB  545.6 12.5 0.02 red
SiteA  545.9 12.9 0.01 blue
SiteC  549.1 13.2 0.01 orange
SiteB  550.4 13.3 0.02 red
...

目前我使用一个循环来逐个绘制每个点:

for point in data:
   plt.errorbar(measurement1,measurement2,yerr=error, marker='.', ecolor='k', fmt=color, linestyle='.')

这样做是逐个绘制每个点,但对于大数据数组来说,这可能会花费很长时间。

有没有人能建议一个更快的方法呢?

1 个回答

2

如果你的颜色不多,可以通过把颜色分组来加快绘图速度。也就是说,可以每种颜色调用一次 pyplot.errorbar()。你可以用列表推导式把数据分成颜色组,然后在测量值 measurement1、measurement2 等地方提供列表或数组,而不是单个数值。

撰写回答