Matplotlib 折線圖

可以使用 Matplotlib 中的 plot() 函式建立折線圖。雖然我們可以只繪製一條線,但它能做的並不僅限於此。我們可以明確的定義網格、x 和 y 軸比例以及標籤、標題和顯示選項。

折線圖示例

下面的示例將建立折線圖。

from pylab import *
t = arange(0.0, 2.0, 0.01)
s = sin(2.5*pi*t)
plot(t, s)

xlabel('time (s)')
ylabel('voltage (mV)')
title('Sine Wave')
grid(True)
show()

輸出:

![Matplotlib 折線圖](/img/Tutorial/Matplotlib/Matplotlib line chart.svg)

正弦表示,

from pylab import *

t = arange(0.0, 2.0, 0.01)
s = sin(2.5*pi*t)

只需定義要繪製的資料。

from pylab import *

t = arange(0.0, 2.0, 0.01)
s = sin(2.5*pi*t)
plot(t, s)
show()

繪製圖表。其他語句解釋一下,語句 xlabel() 設定 x 軸文字,ylabel() 設定 y 軸文字,title() 設定圖表標題,grid(True) 是在圖中開啟網格。

如果要將繪圖儲存到硬碟,請呼叫以下語句:

savefig("line_chart.png")

繪製自定義折線圖

如果要使用陣列(列表)進行繪圖,可以執行以下指令碼:

from pylab import *

t = arange(0.0, 20.0, 1)
s = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
plot(t, s)

xlabel('Item (s)')
ylabel('Value')
title('Python Line Chart: Plotting numbers')
grid(True)
show()

下面的這句話,定義從 0 開始,繪製 20 個元素(我們的陣列的長度),步長為 1。

t = arange(0.0, 20.0, 1)

輸出:

![列表中的 Python 折線圖](/img/Tutorial/Matplotlib/Matplotlib line chart from list.svg)

一個圖中多條線

如果要在一個圖表中繪製多條線,只需多次呼叫 plot() 函式即可。舉一個例子:

from pylab import *

t = arange(0.0, 20.0, 1)
s = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
s2 = [4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
plot(t, s)
plot(t, s2)

xlabel('Item (s)')
ylabel('Value')
title('Python Line Chart: Plotting numbers')
grid(True)
show()

輸出:

![python 多條折線圖](/img/Tutorial/Matplotlib/Matplotlib multiple line charts.svg)

Matplotlib subplot 子圖

如果你想在同一視窗中的不同檢視中繪製它們,你可以使用[subplot()]({{ <relref “/Tutorial/Matplotlib/Matplotlib subplot.md” > }})

import matplotlib.pyplot as plt
from pylab import *

t = arange(0.0, 20.0, 1)
s = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
s2 = [4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]

plt.subplot(2, 1, 1)
plt.plot(t, s)
plt.ylabel('Value')
plt.title('First chart')
plt.grid(True)

plt.subplot(2, 1, 2)
plt.plot(t, s2)
plt.xlabel('Item (s)')
plt.ylabel('Value')
plt.title('Second chart')
plt.grid(True)
plt.show()

輸出:

![Python 子圖](/img/Tutorial/Matplotlib/Matplotlib subplots.svg)

plt.subplot() 語句在這裡很關鍵。subplot() 命令指定子圖行數,列數和要繪製的子圖的編號。

線條樣式

如果想要粗線或設定顏色,請使用:

plot(t, s, color="red", linewidth=2.5, linestyle="-")