我想在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.)
考虑到图例,我想将其用于循环和彩虹功能(或任何其他顺序颜色功能)。任何帮助表示赞赏。
答案 0 :(得分:1)
这是为您提供的一种解决方案。
说明:在列表中创建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 map)
colors = [cm.rainbow(i) for i in 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.)