在 Python Matplotlib 中绘制多线图
Suraj Joshi
2023年1月30日
2020年12月31日
本教程介绍了我们如何使用 Matplotlib 绘制多条线,并为图中的每条线设置不同的颜色。
在 Python Matplotlib 中绘制单条线
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(8)
y=4*x-10
plt.plot(x, y)
plt.title("Plot line in Matplotlib",fontsize=15)
plt.xlabel("X",fontsize=13)
plt.ylabel("Y",fontsize=13)
plt.show()
输出:
它使用 matplotlib.pyplot.plot()
函数创建一条线的图。我们将线的 X
和 Y
坐标作为参数传递给 plot()
函数。
在 Python Matplotlib 中绘制多条线
要在 Matplotlib 中绘制多条线,我们不断为每条线调用 matplotlib.pyplot.plot()
函数,并将线的坐标作为参数传递给相应的 plot()
函数。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(8)
y1=4*x+5
y2=3*x+5
y3=2*x+5
y4=x+5
plt.plot(x,y1)
plt.plot(x,y2)
plt.plot(x,y3)
plt.plot(x,y4)
plt.title("Plot Mutiple lines in Matplotlib",fontsize=15)
plt.xlabel("X",fontsize=13)
plt.ylabel("Y",fontsize=13)
plt.show()
输出:
它绘制了 4 条不同的线,每条线都有共同的轴,每条线都有不同的颜色。我们调用 matplotlib.pyplot.plot()
函数 4 次来绘制这 4 条不同的线。每次我们都将不同线条的坐标作为参数传递给函数。
为了使绘图更具描述性,我们可以在绘图中添加图例,以推断哪条线由哪种颜色代表。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(8)
y1=4*x+5
y2=3*x+5
y3=2*x+5
y4=x+5
plt.plot(x,y1,label="4x+5")
plt.plot(x,y2,label="3x+5")
plt.plot(x,y3,label="2x+5")
plt.plot(x,y4,label="x+5")
plt.title("Plot Mutiple lines in Matplotlib",fontsize=15)
plt.xlabel("X",fontsize=13)
plt.ylabel("Y",fontsize=13)
plt.legend()
plt.show()
输出:
它在图中绘制 4 条线和图例。为了给图中添加图例,我们在绘制线条时,通过设置 plot()
函数中的 label
参数,为每条线条设置一个标签。最后,我们调用 matplotlib.pyplot.legend()
来添加图例。
默认情况下,Matplotlib 会自动为线条分配颜色。如果我们想控制每一行的颜色,我们使用 matplotlib.axes.Axes.set_prop_cycle()
方法。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(8)
y1=4*x+5
y2=3*x+5
y3=2*x+5
y4=x+5
colors=['orange', 'purple', 'green','red']
plt.gca().set_prop_cycle(color=colors)
plt.plot(x,y1,label="4x+5")
plt.plot(x,y2,label="3x+5")
plt.plot(x,y3,label="2x+5")
plt.plot(x,y4,label="x+5")
plt.title("Plot Mutiple lines in Matplotlib",fontsize=15)
plt.xlabel("X",fontsize=13)
plt.ylabel("Y",fontsize=13)
plt.legend()
plt.show()
输出:
它将第一行设置为橙色,第二行设置为紫色,第三行设置为绿色,第四行设置为红色。我们将按顺序使用的颜色列表作为参数传递给 matplotlib.axes.Axes.set_prop_cycle()
方法。
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn