python 如何在同一个图形中绘制两个不同颜色的列表

yizd12fk  于 2023-05-16  发布在  Python
关注(0)|答案(4)|浏览(183)

我需要在同一个图上绘制两个列表。线条应该是不同的颜色。
我试图在同一个图上绘制forecasttrain_Z,但是我得到了它们彼此相对的图,x轴是forecast,y轴是train_Z
下面是我尝试的代码:

import matplotlib.pyplot as plt 

train_X = [1,2,3,4,5] 
train_Y = [10, 20, 30, 40, 50] 
train_Z = [10, 20, 30, 40, 50,25] 
alpha = float(input("Input alpha: ")) 
forecast = []

for x in range(0, len(train_X)+1):  
    if x==0:       
        forecast.append(train_Y[0])  
    else:  
        forecast.append(alpha*train_Y[x-1] + (1 - alpha) * forecast[x-1])
plt.plot(forecast,train_Z,'g') 
plt.show()

关于alpha == 5

q35jwt9p

q35jwt9p1#

您应该使用plt.plot两次来绘制两条线。
我不知道你的X轴是什么,但显然你应该创建另一个数组/列表作为你的X值。
然后使用plt.plot(x_value,forecast, c='color-you-want')plt.plot(x_value,train_z, c='another-color-you-want')
。请参考pyplot文档了解更多详细信息。

b4qexyjb

b4qexyjb2#

根据matplotlib.pyplot.plot文档,使用[x], y, [fmt]绘制多个集。如果传递y而没有相应的x,则y将根据range(len(y))顺序绘制。

散点图

import matplotlib.pyplot as plt

y1 = [1,2,3,4,12,15]
y2 = [1,4,9,16]

plt.plot(y1, 'g*', y2, 'ro')
plt.show()

线图

plt.plot(y1, 'g', y2, 'r')
plt.show()

eyh26e7m

eyh26e7m3#

从另一个答案中窃取借用,这似乎起作用:

# plt.plot(forecast,train_Z,'g') # replace this line, with the following for loop

for x1, x2, y1,y2 in zip(forecast, forecast[1:], train_Z, train_Z[1:]):
    if y1 > y2:
        plt.plot([x1, x2], [y1, y2], 'r')
    elif y1 < y2:
        plt.plot([x1, x2], [y1, y2], 'g')
    else:
        plt.plot([x1, x2], [y1, y2], 'b') # only visible if slope is zero

plt.show()

其他答案:python/matplotlib - multicolor line
当然,请将'r''g''b'值替换为www.example.com颜色列表中的任何其他值https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot

ars1skjm

ars1skjm4#

plt.plot([1,2,3,4,5,6,7,8,9],[9,8,7,6,5,4,3,2,1])
plt.plot([1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7,8]) #these combination in plot one
plt.title("First plot")

plt.figure()

plt.plot([1,2,3,4,5,6,7,8,9],[9,8,7,6,5,4,3,2,1])
plt.plot([1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7,8])# it is plotted in second plot
plt.title("second plot")

相关问题