在 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