Python 一个图中的多个函数

Python 一个图中的多个函数,python,matplotlib,plot,time-series,Python,Matplotlib,Plot,Time Series,因此,我有一个称为CT的numpy.ndarray(10500) 每一行是一个函数,定义在称为Gm的x变量上。Gm是一个具有形状(1500)的numpy.ndarray 我需要在一张图中绘制CT矩阵中的10个函数(作为Gm的函数),然后尝试以下操作: # consumption functions over time plt.figure(figsize=(10,10)) TimeSteps = CT.shape[0] for t in range(0,TimeSteps):

因此,我有一个称为CT的numpy.ndarray(10500)

每一行是一个函数,定义在称为Gm的x变量上。Gm是一个具有形状(1500)的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为每个图形选择不同的颜色,并使其能够标记它们并将其放入文本框的任何想法

在问问题时进行简短的谈话是很常见的。您提出的问题实际上是代码按预期工作的示例,而不是您希望的那样。下面是一个带有不同颜色和不同标签的散射点的示例,您在回答问题时,我和@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()


此处的颜色循环源于matplotlib使用的标准颜色映射。如果要使用特定颜色或更改标准循环,请查看

OK提供的文档-找到另一种更简单的方法。。。简单地转换输入:

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

这样,整个函数就得到了一种独特的颜色,并且似乎得到了解决。所以我最初猜测运行for循环太复杂了

您的线路规格为“go”,绿色带“o”标记,删除“g”,它将是不同的颜色。有关“文本框”,请参见matplotlib文档的更多信息,我想您指的是图例?如果是这样的话,请将
label=t
,然后在有关颜色@GlobalTraveler的循环后调用
plt.legend()
。。。将“go”替换为“o”不会为每个图形创建唯一的颜色。相反,图形上的不同点(在特定的时间间隔内)具有不同的颜色。因此,仍然无法区分。@terman这些点可能重叠在一起,造成了一种看似无差异的效果,您可以调整alpha值以进行健全性检查,或者使用不同的子图。图例@大卫。。。我试着这么做,但留下了一个回溯。。。ValueError:595x70022像素的图像大小太大。在每个方向上都必须小于2^16。。。。看起来可能与颜色有关…谢谢@GlobalTraveler