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="-")