在 Python Matplotlib 中绘制多线图
Suraj Joshi
2024年2月15日
本教程介绍了我们如何使用 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()
方法。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn