原文: http://zetcode.com/python/matplotlib/

Matplotlib 教程展示了如何使用 Matplotlib 在 Python 中创建图表。 我们创建散点图,折线图,条形图和饼图。

Matplotlib

Matplotlib 是用于创建图表的 Python 库。 Matplotlib 可用于 Python 脚本,Python 和 IPython shell,jupyter 笔记本,Web 应用服务器以及四个图形用户界面工具包。

Matplotlib 安装

Matplotlib 是需要安装的外部 Python 库。

  1. $ sudo pip install matplotlib

我们可以使用pip工具安装该库。

Matplotlib 散点图

散点图是一种图形或数学图,使用笛卡尔坐标显示一组数据的两个变量的值。

scatter.py

  1. #!/usr/bin/python3
  2. import matplotlib.pyplot as plt
  3. x_axis = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  4. y_axis = [5, 16, 34, 56, 32, 56, 32, 12, 76, 89]
  5. plt.title("Prices over 10 years")
  6. plt.scatter(x_axis, y_axis, color='darkblue', marker='x', label="item 1")
  7. plt.xlabel("Time (years)")
  8. plt.ylabel("Price (dollars)")
  9. plt.grid(True)
  10. plt.legend()
  11. plt.show()

该示例绘制了一个散点图。 该图表显示了十年内某些商品的价格。

  1. import matplotlib.pyplot as plt

我们从matplotlib模块导入pyplot。 它是创建图表的命令样式函数的集合。 它的操作与 MATLAB 类似。

  1. x_axis = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  2. y_axis = [5, 16, 34, 56, 32, 56, 32, 12, 76, 89]

我们有 x 和 y 轴的数据。

  1. plt.title("Prices over 10 years")

通过title()函数,我们可以为图表设置标题。

  1. plt.scatter(x_axis, y_axis, color='darkblue', marker='x', label="item 1")

scatter()函数绘制散点图。 它接受 x 和 y 轴,标记的颜色,标记的形状和标签的数据。

  1. plt.xlabel("Time (years)")
  2. plt.ylabel("Price (dollars)")

我们为轴设置标签。

  1. plt.grid(True)

我们用grid()函数显示网格。 网格由许多垂直和水平线组成。

  1. plt.legend()

legend()函数在轴上放置图例。

  1. plt.show()

show()函数显示图表。

Matplotlib 教程 - 图1

图:散点图

两个数据集

在下一个示例中,我们将另一个数据集添加到图表。

scatter2.py

  1. #!/usr/bin/python3
  2. import matplotlib.pyplot as plt
  3. x_axis1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  4. y_axis1 = [5, 16, 34, 56, 32, 56, 32, 12, 76, 89]
  5. x_axis2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  6. y_axis2 = [53, 6, 46, 36, 15, 64, 73, 25, 82, 9]
  7. plt.title("Prices over 10 years")
  8. plt.scatter(x_axis1, y_axis1, color='darkblue', marker='x', label="item 1")
  9. plt.scatter(x_axis2, y_axis2, color='darkred', marker='x', label="item 2")
  10. plt.xlabel("Time (years)")
  11. plt.ylabel("Price (dollars)")
  12. plt.grid(True)
  13. plt.legend()
  14. plt.show()

该图表显示两个数据集。 我们通过标记的颜色来区分它们。

  1. x_axis1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  2. y_axis1 = [5, 16, 34, 56, 32, 56, 32, 12, 76, 89]
  3. x_axis2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  4. y_axis2 = [53, 6, 46, 36, 15, 64, 73, 25, 82, 9]

我们有两个数据集。

  1. plt.scatter(x_axis1, y_axis1, color='darkblue', marker='x', label="item 1")
  2. plt.scatter(x_axis2, y_axis2, color='darkred', marker='x', label="item 2")

我们为每个集合调用scatter()函数。

Matplotlib 折线图

折线图是一种显示图表的图表,该信息显示为一系列数据点,这些数据点通过直线段相连,称为标记。

linechart.py

  1. #!/usr/bin/python3
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. t = np.arange(0.0, 3.0, 0.01)
  5. s = np.sin(2.5 * np.pi * t)
  6. plt.plot(t, s)
  7. plt.xlabel('time (s)')
  8. plt.ylabel('voltage (mV)')
  9. plt.title('Sine Wave')
  10. plt.grid(True)
  11. plt.show()

该示例显示正弦波折线图。

  1. import numpy as np

在示例中,我们还需要numpy模块。

  1. t = np.arange(0.0, 3.0, 0.01)

arange()函数返回给定间隔内的均匀间隔的值列表。

  1. s = np.sin(2.5 * np.pi * t)

我们获得数据的sin()值。

  1. plt.plot(t, s)

我们使用plot()函数绘制折线图。

Matplotlib 条形图

条形图显示带有矩形条的分组数据,其长度与它们代表的值成比例。 条形图可以垂直或水平绘制。

barchart.py

  1. #!/usr/bin/python3
  2. from matplotlib import pyplot as plt
  3. from matplotlib import style
  4. style.use('ggplot')
  5. x = [0, 1, 2, 3, 4, 5]
  6. y = [46, 38, 29, 22, 13, 11]
  7. fig, ax = plt.subplots()
  8. ax.bar(x, y, align='center')
  9. ax.set_title('Olympic Gold medals in London')
  10. ax.set_ylabel('Gold medals')
  11. ax.set_xlabel('Countries')
  12. ax.set_xticks(x)
  13. ax.set_xticklabels(("USA", "China", "UK", "Russia",
  14. "South Korea", "Germany"))
  15. plt.show()

该示例绘制了条形图。 它显示了 2012 年伦敦每个国家/地区的奥运金牌数量。

  1. style.use('ggplot')

可以使用预定义的样式。

  1. fig, ax = plt.subplots()

subplots()函数返回图形和轴对象。

  1. ax.bar(x, y, align='center')

使用bar()函数生成条形图。

  1. ax.set_xticks(x)
  2. ax.set_xticklabels(("USA", "China", "UK", "Russia",
  3. "South Korea", "Germany"))

我们为 x 轴设置国家/地区名称。

Matplotlib 饼图

饼图是圆形图,将其分成多个切片以说明数值比例。

piechart.py

  1. #!/usr/bin/python3
  2. import matplotlib.pyplot as plt
  3. labels = ['Oranges', 'Pears', 'Plums', 'Blueberries']
  4. quantity = [38, 45, 24, 10]
  5. colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
  6. plt.pie(quantity, labels=labels, colors=colors, autopct='%1.1f%%',
  7. shadow=True, startangle=90)
  8. plt.axis('equal')
  9. plt.show()

该示例创建一个饼图。

  1. labels = ['Oranges', 'Pears', 'Plums', 'Blueberries']
  2. quantity = [38, 45, 24, 10]

我们有标签和相应的数量。

  1. colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']

我们为饼图的切片定义颜色。

  1. plt.pie(quantity, labels=labels, colors=colors, autopct='%1.1f%%',
  2. shadow=True, startangle=90)

饼图是通过pie()函数生成的。 autopct负责在图表的楔形图中显示百分比。

  1. plt.axis('equal')

我们设置了相等的长宽比,以便将饼图绘制为圆形。

Matplotlib 教程 - 图2

图:饼图

在本教程中,我们使用 Matplotlib 库创建了散点图,折线图,条形图和饼图。

您可能也对以下相关教程感兴趣: PrettyTable 教程Tkinter 教程SymPy 教程Python Pillow 教程PyQt5 教程Python 教程