【发布时间】:2019-07-14 04:27:09
【问题描述】:
所以,我有一个名为 CT 的 numpy.ndarray,形状为 (10, 500)。
每一行都是一个函数,定义在称为 Gm 的 x 变量上。 Gm 是一个形状为 (1,500) 的 numpy.ndarray。
我需要在一张图中绘制 CT 矩阵中的 10 个函数(作为 Gm 的函数)并尝试以下操作:
# consumption functions over time
plt.figure(figsize=(10,10))
TimeSteps = CT.shape[0]
for t in range(0,TimeSteps):
plt.plot(Gm,CT[t].reshape(1,DiscG),'go',label='t')
plt.show()
这可行,但所有图形都以相同的颜色(绿色)显示,并且无法区分图形是否为 t = 0、1、2 等。
关于如何让 plt 为每个图表选择不同颜色并使其能够标记它们并将其放入文本框中的任何想法。
【问题讨论】:
-
您的线路规格是“go”,它是带有“o”标记的绿色,去掉“g”,它将是不同的颜色。在 matplotlib 文档中查看更多信息
-
对于“文本框”,我假设您的意思是图例?如果是这样,请创建
label=t,然后在循环后调用plt.legend() -
关于颜色@GlobalTraveler ...用“o”替换“go”不会为每个图形创建唯一的颜色。相反,看起来图表上的不同点(在某些间隔内)具有不同的颜色。所以,仍然无法区分。
-
@terman 这些点可能重叠,造成看似没有差异,您可以调整 alpha 值以进行健全性检查或使用不同的子图。
-
legend ... @DavidG ... 我尝试这样做,但留下了回溯... ValueError:595x70022 像素的图像尺寸太大。每个方向必须小于 2^16.... 看起来可能与颜色问题有关...
标签: python matplotlib plot time-series