如何使用顺序颜色函数中的颜色迭代绘制线

2024-09-27 21:25:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python绘制3幅图。我手工绘制的
代码是:

import matplotlib.pyplot as plt
import numpy as np    
fig, ax = plt.subplots(1, 1)    
Semesters=np.arange(1,7,1)
y1=np.arange(10,16,1)
y2=np.arange(20,26,1)
y3=np.arange(51,57,1)
plt.plot(Semesters, y1,label="To Reach 120",linewidth=2)
plt.plot(Semesters, y2,label="To Reach 100",linewidth=2)
plt.plot(Semesters, y3,label="To Reach 80",linewidth=2)
ax.set_xticks(Semesters)
plt.legend(bbox_to_anchor=(0.85, .3), loc=2, borderaxespad=0.)

enter image description here

我想使用循环和彩虹函数(或任何其他顺序颜色函数)作为其颜色。感谢您的帮助


Tags: toimportplotasnp绘制pltax
1条回答
网友
1楼 · 发布于 2024-09-27 21:25:55

这里有一个解决方案

解释:在列表中创建y数据(y_list此处)并存储标签(labels此处)。然后按照您的要求使用for循环遍历列表,一次绘制一个

要使用颜色映射定义颜色,rainbow例如,使用您拥有的行数(图)创建颜色列表(以下示例中为3)。然后只需在for循环中指定这些颜色,就可以得到所需的绘图

import matplotlib.pyplot as plt
import numpy as np    
from matplotlib import cm

fig, ax = plt.subplots(1, 1)    
Semesters=np.arange(1,7,1)
y_list = [np.arange(10,16,1), np.arange(20,26,1), np.arange(51,57,1)]
labels = ["To Reach 120", "To Reach 100", "To Reach 80"]

# Define the colors to be used using rainbow map (or any other sequential map)
colors = cm.rainbow(np.linspace(0, 1, len(y_list)))

# Plot the lines using a for loop
for i in range(len(y_list)):
    plt.plot(Semesters, y_list[i], label=labels[i], linewidth=2., color=colors[i])

ax.set_xticks(Semesters)
plt.legend(bbox_to_anchor=(0.85, .3), loc=2, borderaxespad=0.)

enter image description here

相关问题 更多 >

    热门问题