matplotlib 具有不同颜色的图的不同段

u91tlkcl  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(150)

我有一个要绘制的列表。对于列表中的每个元素,我都有相应的颜色。我想用这些颜色绘制列表。没有散点图。

value=[12,15,20] 
color_list=['red','red','blue']
plt.plot(value, color=color_list)

我希望有两个部分,第一个红色,第二个蓝色。
谢谢

31moq8wy

31moq8wy1#

一种方法是使用for循环分别绘制每一条线段,并为要绘制的值建立索引。注意,每个点对应一种颜色,而不是线段对应的颜色,因此我在i+1处建立索引,以给予红色和蓝色线段。

from matplotlib import pyplot as plt

value=[12,15,20]
color_list=['red','red','blue']

for i in range(0,(len(value)-1)):
    plt.plot(value[i:i+2], color=color_list[i+1])

plt.show()

由于您没有提供x值,因此此方法假定每行将从0到1。如果不是这种情况,则需要指定x值,并以相同的方式为它们编制索引。

from matplotlib import pyplot as plt

value=[12,15,20]
xs = [0,1,2]
color_list=['red','red','blue']

for i in range(0,(len(value)-1)):
    plt.plot(xs[i:i+2],value[i:i+2], color=color_list[i+1])

plt.show()

tjrkku2a

tjrkku2a2#

x=np.arange(20)
    y=[i**2 for i in x]

    fig, ax = plt.subplots(figsize=(12,5))

    ax.plot(x[0:6], y[0:6], color='red')
    ax.plot(x[5:9],y[5:9], color='blue')
    plt.show()

enter image description here

相关问题