一张图中的多功能

时间:2019-02-20 13:04:58

标签: python matplotlib plot time-series

所以,我有一个名为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等。

关于如何为每个图形选择不同颜色并将其标记并放入文本框中的任何想法。

2 个答案:

答案 0 :(得分:0)

询问一个问题minimal and verifiable example时通常是急躁的。您提出的问题实际上是代码按预期运行的示例,但并非您希望的那样。这是您提出问题并由我和@DavidG回答的具有不同颜色和不同标签的散点示例。

import matplotlib.pyplot as plt
import numpy as np
# dummy data
x = np.random.rand(10, 100)

fig, ax = plt.subplots()
[ax.plot(xi, marker = 'o', label = idx) for idx, xi in enumerate(x)]
ax.legend()
fig.show()

enter image description here

如果您要使用特定颜色或更改标准色,则此处的颜色色环来自matplotlib使用的标准色图,请查看matplotlib

提供的文档。

答案 1 :(得分:0)

好-找到了另一种简单的方法...简单地转置输入:

plt.figure(figsize=(10,10))
plt.plot(Gm.transpose(),CT.transpose(),marker='o')
plt.show()

这样,整个函数将获得唯一的颜色,并且看起来可以解决。所以我最初的猜测是运行一个for循环太复杂了。