目录
简介
matplotlib 是一个用于创建二维图表和数据可视化的 Python 库,它提供了一种类似于 MATLAB 的绘图接口。matplotlib 可以用来绘制线图、散点图、柱状图、饼图等各种类型的图表,并且支持对图表的各种属性进行自定义设置,以及添加文本、注释、图例等元素。
以下是 matplotlib 的一些主要特点和功能:
-
丰富的绘图功能: matplotlib 提供了多种绘图函数,可以绘制各种类型的图表,包括线图、散点图、柱状图、饼图、等高线图等。
-
自定义设置: 用户可以对图表的各种属性进行自定义设置,如颜色、线型、标记、标题、坐标轴标签等。
-
交互式绘图: matplotlib 支持交互式绘图,用户可以使用鼠标对图表进行缩放、平移等操作。
-
多种输出格式: 用户可以将绘制的图表保存为多种格式的文件,包括 PNG、PDF、SVG 等。
-
与 NumPy 和 Pandas 集成: matplotlib 可以与 NumPy 和 Pandas 库无缝集成,方便用户处理和可视化数据。
-
支持多种绘图风格: matplotlib 提供了多种预定义的绘图风格,用户可以根据需要选择合适的风格。
matplotlib 是一个功能强大且灵活的数据可视化工具,在科学计算、数据分析、机器学习等领域得到了广泛的应用。
matplotlib.pyplot as plt
matplotlib.pyplot 是 matplotlib 库中的一个子模块,提供了与 MATLAB 类似的绘图接口,用于创建各种类型的图表和数据可视化。通常情况下,我们会将 matplotlib.pyplot 模块导入为 plt,以方便调用其中的函数。
matplotlib.pyplot 模块包含了很多用于绘图的函数,如 plot()、scatter()、bar()、hist() 等,以及用于设置图表属性的函数,如 xlabel()、ylabel()、title()、legend() 等。
以下是一些常见的 matplotlib.pyplot 的用法示例:
python
import matplotlib.pyplot as plt
# 创建一个简单的线图
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
# 添加标签和标题
plt.xlabel('x')
plt.ylabel('y')
plt.title('Simple Plot')
# 显示图例
plt.legend(['Data'])
# 显示图表
plt.show()
这段代码创建了一个简单的线图,其中 x 轴的值为 [1, 2, 3, 4],y 轴的值为 [1, 4, 9, 16]。然后添加了 x 轴和 y 轴的标签、图表的标题,并显示了图例。最后调用 plt.show() 方法显示绘制的图表。
matplotlib.pyplot 是 matplotlib 库中最常用的模块之一,用于快速绘制各种类型的图表,并且具有丰富的可定制性。
常用函数说明
创建子图
plt.subplots()
plt.subplots() 是 matplotlib.pyplot 模块中的一个函数,用于创建一个包含多个子图(subplot)的图形,并返回一个包含图形对象和子图对象的元组。子图可以按行和列排列,以创建一个网格状的布局。
具体而言,plt.subplots() 函数的常见用法是通过指定行数和列数来创建一个包含多个子图的网格布局。例如,plt.subplots(2, 2) 将创建一个包含 2 行 2 列的子图网格。
示例代码:
python
import matplotlib.pyplot as plt
# 创建一个包含 2 行 2 列的子图网格
fig, axs = plt.subplots(2, 2)
# 在第一个子图中绘制直方图
axs[0, 0].hist([1, 2, 3, 4, 5])
# 在第二个子图中绘制散点图
axs[0, 1].scatter([1, 2, 3, 4, 5], [5, 4, 3, 2, 1])
# 在第三个子图中绘制折线图
axs[1, 0].plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
# 在第四个子图中绘制条形图
axs[1, 1].bar([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
# 设置整个图形的标题
fig.suptitle('Subplots Example')
# 显示图形
plt.show()
在这个例子中,我们使用 plt.subplots(2, 2) 创建了一个 2x2 的子图网格。然后,我们分别在每个子图中绘制了不同类型的图表,包括直方图、散点图、折线图和条形图。最后,我们使用 fig.suptitle() 方法为整个图形添加了一个标题,并使用 plt.show() 显示了图形。
.plot()
.plot() 是 matplotlib.pyplot 中用于绘制线图的函数。它可以用来绘制一维数据的折线图,其中横坐标通常表示数据的位置或者时间,纵坐标表示数据的值。
.plot() 函数的常见用法是传入一个或多个序列(列表、数组等),然后将这些序列的值连接起来并绘制成一条或多条线。例如:
应用
两个dataframe的列绘图
python
dfPP["LAI"].plot(ax=axis1, label="LAI", color='k')
dfPP["TAGP"].plot(ax=axis2, label="Total biomass")
dfPP["TWSO"].plot(ax=axis2, label="Yield")
子图参数
set_title()
set_title() 是 matplotlib.pyplot 中用于设置图表标题的方法。它可以用来为绘制的图表添加一个标题,用于描述图表的内容或主题。
axis2.legend()
在 matplotlib 中,legend() 方法用于添加图例到图表中。当你使用多个数据系列绘制图表时,图例可以帮助区分不同的数据系列,从而更好地理解图表内容。
legend() 方法可以用于添加默认图例,它会自动识别图表中的数据系列,并根据其标签创建图例。例如:
fig.autofmt_xdate()
fig.autofmt_xdate() 是 matplotlib 中用于自动调整日期轴标签角度的方法。通常用于绘制包含日期数据的图表,当日期数据较多时,日期轴标签会相互重叠,难以辨认。调用 autofmt_xdate() 方法可以自动调整日期轴标签的角度,使其更好地显示在图表上。