Bootstrap

python 进阶教程--matplotlib

3.1 安装配置

Matplotlib 是一个用于创建高质量图表的 Python 绘图库。在开始使用 Matplotlib 之前,需要先安装它。以下是安装 Matplotlib 的步骤:
步骤 1:确保已经安装了 Python 和 pip。pip 是 Python 的包管理工具,用于安装和管理 Python 包。
步骤 2:打开命令提示符或终端,输入以下命令来安装 Matplotlib:

pip install matplotlib

这将自动下载并安装 Matplotlib 及其依赖的包。
步骤 3:安装完成后,可以通过在 Python 解释器中导入 Matplotlib 来验证安装是否成功:

import matplotlib

如果没有出现错误消息,那么 Matplotlib 已经成功安装。
步骤 4:为了更好地使用 Matplotlib,建议安装一个图形用户界面(GUI)工具,如 Jupyter Notebook 或 PyCharm。这些工具可以帮助更方便地创建和展示图表。
步骤 5:在 Jupyter Notebook 中使用 Matplotlib 时,可以通过以下命令启用 inline 模式,以便在笔记本中直接显示图表:

%matplotlib inline

这就是安装配置 Matplotlib 的基本步骤。安装完成后,可以开始使用 Matplotlib 创建各种图表。


3.2 Matplotlib 快速入门

安装 Matplotlib 后,我们可以通过一些基本的示例来快速了解如何使用这个库。以下是一些简单的步骤来开始使用 Matplotlib 绘制图表。
步骤 1:导入 Matplotlib 的 pyplot 模块。pyplot 是 Matplotlib 的一个模块,提供了一个类似于 MATLAB 的绘图框架。

import matplotlib.pyplot as plt

步骤 2:准备数据。我们通常需要提供 x 和 y 轴的数据。

x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]

步骤 3:使用 plt.plot() 函数绘制图表。

plt.plot(x, y)

步骤 4:添加标题和标签,以便更好地描述图表。

plt.title('Sample Plot')
plt.xlabel('X-axis label')
plt.ylabel('Y-axis label')

步骤 5:调用 plt.show() 来显示图表。

plt.show()

将上述步骤组合在一起,我们得到一个简单的 Python 脚本,用于绘制一个基本的折线图。

import matplotlib.pyplot as plt
# 数据
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
# 绘图
plt.plot(x, y)
# 添加标题和标签
plt.title('Sample Plot')
plt.xlabel('X-axis label')
plt.ylabel('Y-axis label')
# 显示图表
plt.show()

运行这段代码,将会弹出一个窗口,显示我们绘制的折线图。
这是 Matplotlib 的快速入门示例。通过这个示例,我们可以看到如何导入 pyplot 模块,准备数据,绘制图表,添加标题和标签,以及显示图表。接下来,我们可以学习如何绘制不同类型的图表和自定义图表的样式。


3.3 图形绘制

Matplotlib 支持多种图形的绘制,包括线图、散点图、条形图、饼图等。以下是一些基本图形绘制的示例。

线图

线图是最基本的图表类型之一,用于显示数据随时间或其他连续变量的变化趋势。

import matplotlib.pyplot as plt
# 数据
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
# 绘制线图
plt.plot(x, y)
# 添加标题和标签
plt.title('Line Chart')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图表
plt.show()

散点图

散点图用于显示两个变量之间的关系,每个点代表一个数据点。

import matplotlib.pyplot as plt
# 数据
x = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6]
y = [99, 86, 87, 88, 100, 86, 103, 87, 94, 78, 77, 85, 86]
# 绘制散点图
plt.scatter(x, y)
# 添加标题和标签
plt.title('Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图表
plt.show()

条形图

条形图用于比较不同类别的数据。

import matplotlib.pyplot as plt
# 数据
categories = ['A', 'B', 'C', 'D']
values = [10, 8, 6, 4]
# 绘制条形图
plt.bar(categories, values)
# 添加标题和标签
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
# 显示图表
plt.show()

饼图

饼图用于显示各部分占整体的比例。

import matplotlib.pyplot as plt
# 数据
labels = 'Apples', 'Oranges', 'Pears', 'Bananas'
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
# 绘制饼图
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)
# 显示图表
plt.axis('equal')  # 确保饼图是圆形的
plt.show()

这些是使用 Matplotlib 绘制基本图形的示例。通过调整绘图函数的参数,可以自定义图表的外观,包括颜色、线型、标记等。此外,Matplotlib 还支持更复杂的图表类型和自定义选项,可以通过官方文档进一步探索。


3.4 风格样式

Matplotlib 提供了多种内置的风格样式,可以让你的图表变得更加美观和个性化。通过使用样式,可以快速改变图表的整体外观,包括颜色、线型、背景等。

使用内置样式

Matplotlib 内置了许多样式,你可以通过 plt.style.use() 函数来选择使用。首先,让我们查看所有可用的样式:

import matplotlib.pyplot as plt
print(plt.style.available)

这将打印出所有可用的样式列表。选择一个样式并应用于你的图表:

plt.style.use('ggplot')  # 例如,使用 'ggplot' 样式

现在,使用这个样式绘制一个图表:

plt.plot([1, 2, 3, 4])
plt.show()

创建自定义样式

除了使用内置样式,你还可以创建自定义样式。可以通过创建一个名为 mpl_style.py 的 Python 文件来定义自己的样式,然后在这个文件中设置你想要的参数。例如:

# mpl_style.py
plt.style.use([
    'dark_background',  # 使用暗色背景
    {
        'axes.edgecolor': 'white',  # 轴边缘颜色为白色
        'axes.facecolor': '#333333',  # 轴背景颜色为深灰色
        'axes.labelcolor': 'white',  # 轴标签颜色为白色
        'xtick.color': 'white',  # x轴刻度颜色为白色
        'ytick.color': 'white',  # y轴刻度颜色为白色
        'grid.color': 'gray',  # 网格颜色为灰色
        'text.color': 'white',  # 文本颜色为白色
        'figure.facecolor': '#222222',  # 图表背景颜色为深灰色
        'savefig.facecolor': '#222222',  # 保存图表的背景颜色为深灰色
    }
])

然后在你的脚本中导入这个样式:

import matplotlib.pyplot as plt
import mpl_style
plt.style.use(mpl_style)  # 使用自定义样式
plt.plot([1, 2, 3, 4])
plt.show()

临时使用样式

如果你只想在特定的代码块中使用一个样式,可以使用 with 语句来临时应用样式:

import matplotlib.pyplot as plt
with plt.style.context('seaborn-darkgrid'):
    plt.plot([1, 2, 3, 4])
    plt.show()

在这个代码块中绘制的图表将使用 ‘seaborn-darkgrid’ 样式,而代码块之外的图表则不会受到影响。
通过这些方法,你可以轻松地改变 Matplotlib 图表的外观,使其更加符合你的需求或品牌风格。

;