Python matplotlib之折线图的各种样式与画法总结

Python matplotlib之折线图的各种样式与画法总结

1. 简介

matplotlib 是 Python 语言下的一个绘图库,它提供了一种类似 MATLAB 的绘图方式。matplotlib 不仅能够简单方便地生成各种折线图,而且还支持很多自定义样式和参数设置。

本文将围绕 matplotlib 绘制折线图进行详细的讲解,包括:

  • 如何安装 matplotlib
  • 如何进行基本绘图操作
  • 折线图的各种样式及代码示范
  • 折线图的数据处理及示例分析

2. 安装 matplotlib

使用 pip 命令可以简单方便地安装 matplotlib 库。

pip install matplotlib

常见问题:

如果报错信息显示 matplotlib 找不到系统依赖的包 libfreetype.6.dylib,解决方式如下:

  1. brew install freetype
  2. pip install --no-cache-dir -I --ignore-installed matplotlib

3. 基本绘图操作

绘制一个简单的线性折线图,需要几个简单的步骤:

  1. 生成数据
  2. 创建画布和坐标系
  3. 将数据放置在坐标系上并设置样式
  4. 设置坐标轴信息等图形参数
  5. 显示图形

下面是一个简单示例代码:

import matplotlib.pyplot as plt

# 生成数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 5, 8, 11, 14]

# 创建画布和坐标系
fig, ax = plt.subplots()

# 添加数据到坐标系上并设置样式
ax.plot(x, y, color='red', linewidth=2, linestyle='--', label='Line Name')

# 设置坐标轴信息等图形参数
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_title('Title')
ax.grid(True)
ax.legend(loc='best')

# 显示图形
plt.show()

可以看到,我们调用了 plot 方法将数据放置在坐标系上,该方法支持很多样式的设置,比如 colorlinewidthlinestyle 等。同时,我们还通过更改坐标轴标签、标题、网格和图例等内容,让图形看起来更加美观易懂。

4. 折线图的各种样式及代码示范

在本节中,我们将针对折线图的多种样式进行详细的介绍,具体包括以下内容:

  • 线性折线图
  • 曲线折线图
  • 填充面积折线图
  • 点状折线图
  • 标记文本折线图
  • 带误差线折线图
  • 双轴折线图

4.1 线性折线图

线性折线图是最为常见的折线图类型。在 matplotlib 中,可以通过 plot 函数快速绘制出这种类型的折线图。

import matplotlib.pyplot as plt

# 生成数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 5, 8, 11, 14]

# 创建画布和坐标系
fig, ax = plt.subplots()

# 添加数据到坐标系上并设置样式
ax.plot(x, y, color='red', linewidth=2, linestyle='--')

# 显示图形
plt.show()

4.2 曲线折线图

除了线性折线图外,还有一类叫做曲线折线图的图形。它们可以通过将坐标系切换为极坐标系后再进行绘制。

import numpy as np
import matplotlib.pyplot as plt

# 生成数据
theta = np.linspace(0, 2*np.pi, 100)
r = np.sin(3*theta)

# 创建画布和坐标系
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})

# 添加数据到坐标系上并设置样式
ax.plot(theta, r, color='blue')

# 显示图形
plt.show()

4.3 填充面积折线图

在 matplotlib 中,我们还可以通过 fill_between 函数绘制填充面积折线图。

import matplotlib.pyplot as plt

# 生成数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 5, 8, 11, 14]

# 创建画布和坐标系
fig, ax = plt.subplots()

# 添加数据到坐标系上并设置样式
ax.fill_between(x, y, color='g', alpha=0.3)
ax.plot(x, y, color='g', linewidth=2, linestyle='--')

# 显示图形
plt.show()

4.4 点状折线图

在 matplotlib 中,我们可以通过 scatter 函数快速绘制出点状折线图。

import matplotlib.pyplot as plt

# 生成数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 5, 8, 11, 14]

# 创建画布和坐标系
fig, ax = plt.subplots()

# 添加数据到坐标系上并设置样式
ax.scatter(x, y, color='red', marker='o')

# 显示图形
plt.show()

4.5 标记文本折线图

标记文本折线图可以通过 annotate 函数实现。它可以在坐标系上添加文本标注和箭头标记等元素。

import matplotlib.pyplot as plt

# 生成数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 5, 8, 11, 14]

# 创建画布和坐标系
fig, ax = plt.subplots()

# 添加数据到坐标系上并设置样式
ax.plot(x, y, color='blue')
ax.annotate('Start Here', xy=(x[0], y[0]), xytext=(2, 8), fontsize=10,
            arrowprops=dict(facecolor='yellow', arrowstyle='->'))

# 显示图形
plt.show()

4.6 带误差线折线图

在 matplotlib 中,我们可以使用 errorbar 函数添加误差线。

import matplotlib.pyplot as plt

# 生成数据
x = [1, 2, 3, 4, 5, 6]
y = [2, 3, 5, 8, 11, 14]
y_error = [0.3, 0.4, 0.2, 0.6, 0.8, 0.5]

# 创建画布和坐标系
fig, ax = plt.subplots()

# 添加数据到坐标系上并设置样式
ax.errorbar(x, y, yerr=y_error, fmt='-o', capsize=3)

# 显示图形
plt.show()

4.7 双轴折线图

双轴折线图是一种非常实用的图表类型,它可以在同一个图表中绘制两个不同的数据集,每个数据集具有自己的轴。在 matplotlib 中,我们可以通过 twinx 函数实现双轴折线图。

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建画布和坐标系
fig, ax1 = plt.subplots()

# 添加数据到坐标系上并设置样式
ax1.plot(x, y1, color='blue')
ax1.set_xlabel('X axis')
ax1.set_ylabel('Y1', color='blue')
ax1.tick_params(axis='y', labelcolor='blue')

ax2 = ax1.twinx()
ax2.plot(x, y2, color='red')
ax2.set_ylabel('Y2', color='red')
ax2.tick_params(axis='y', labelcolor='red')

# 显示图形
plt.show()

5. 折线图的数据处理与示例分析

在本节中,我们将介绍如何通过实际案例进行折线图的数据处理及分析。

数据源:https://data.giss.nasa.gov/gistemp/

该数据集记录了全球降水、温度和气候变化情况,本文选择其中的温度数据进行折线图分析。

5.1 数据分析

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据集
df_climate = pd.read_csv('GLB.Ts_dSST.csv', skiprows=2)

# 数据处理
# 取最近一年的数据
current_year = df_climate['Year'].max()
df_climate = df_climate[df_climate['Year'] == current_year]
# 提取数据中的月份温度信息
cols = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
        'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
df_climate = df_climate[cols].T.reset_index()
df_climate.columns = ['Month', 'Temp']
# 去掉没有数据的月份
df_climate = df_climate.dropna()

# 绘制折线图
fig, ax = plt.subplots()
ax.plot(df_climate['Month'], df_climate['Temp'])
ax.set_xticklabels(cols)
ax.set_xlabel('Month')
ax.set_ylabel('Temperature Anomaly (°C)')
ax.set_title(f'Global Temperature Anomalies in {current_year}')
ax.grid(True)

# 显示图形
plt.show()

如上方法(数据源在上文中附上),我们将温度数据读取到 DataFrame 中,并处理得到最近一年(2019)的各月份温度数据。最后,我们通过 plot 函数绘制折线图,可以很清晰地看到全球的温度变化情况。

5.2 结论

通过以上的温度数据的折线图,我们可以看到全球温度变化的趋势向上,特别是近年来变化幅度加大。因此,对于温室效应和全球气候变化的问题,我们应该引起高度重视和实际行动,尽可能地减少对环境的压力。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python matplotlib之折线图的各种样式与画法总结 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]

    Pandas是一种Python常用的数据处理工具,它具有很强的数据选取和处理能力,本文将详细讲解Pandas数据选取的完整攻略。 一、pandas数据选取方法 Pandas提供了丰富的数据选取方法,常用的包括: df[]:基于列名或索引选取列或行; df.loc[]:基于行和列名称选取数据; df.iloc[]:通过整数位置选取数据; df.ix[]:基于行…

    python 2023年5月14日
    00
  • 如何在Pandas数据框架中减去两列

    可以通过Pandas的数据框架中的列进行数学运算,例如减法。 以下是在Pandas数据框架中减去两列的完整攻略: 导入Pandas模块并读取数据 “`python import pandas as pd # 读取数据文件 df = pd.read_csv(‘example.csv’) “` 确定要减去的两列 python # 假设我们要减去’salary…

    python-answer 2023年3月27日
    00
  • 在Python Pandas中比较时间戳

    在Python Pandas中,可以使用许多方法来比较时间戳。下面介绍其中的一些方法。 1. 比较大小 使用“>”、“<”、“>=”、“<=”、“==”、“!=”等运算符可以比较时间戳的大小。示例代码如下: import pandas as pd d1 = pd.Timestamp(‘2021-01-01 00:00:00’) d2 …

    python-answer 2023年3月27日
    00
  • 分析python请求数据

    收集数据 首先要做的是收集请求数据。 有很多方法可以收集数据。 例如: 自行编写Python脚本向网站发送请求,并将响应内容写入文件中 使用第三方Python库(如requests)来直接发送请求并获得响应数据 在这里,我们将通过【自行编写Python脚本向网站发送请求,并将响应内容写入文件中】这个方法来分析数据。 代码示例1: import request…

    python 2023年5月14日
    00
  • 在python中使用pyspark读写Hive数据操作

    在Python中使用PySpark读写Hive数据需要进行以下步骤: 安装PySpark 在终端中运行以下命令进行安装: pip install pyspark 创建SparkSession对象 在Python中,使用Spark操作的入口点是SparkSession对象。在代码中创建SparkSession对象的代码如下: from pyspark.sql …

    python 2023年5月14日
    00
  • Python pyecharts Line折线图的具体实现

    下面是Python pyecharts Line折线图的具体实现攻略: 简介 pyecharts 是一个基于 Echarts 实现的图表库,它支持很多种图表类型,包括柱状图、折线图、饼图、散点图等等。而 pyecharts 的优点在于简单易用,所需要的准备工作很少,只需要几行代码就可以生成一个漂亮的图表。 准备工作 在使用 pyecharts 之前,需要安装…

    python 2023年6月13日
    00
  • Pandas数据框架中浅层复制与深层复制的区别

    Pandas是Python中非常流行的数据处理库,其中的DataFrame就是一种基于二维表格的数据结构,因此在使用Dataframe时,我们需要掌握深层复制和浅层复制的区别,以避免出现不必要的错误。 深层复制指的就是完全复制一个DataFrame对象到另一个对象中,而新的对象和原始对象完全独立,两者之间没有任何关联性。这意味着我们修改一个对象的值不会影响另…

    python-answer 2023年3月27日
    00
  • pandas数据拼接的实现示例

    下面是关于“pandas数据拼接的实现示例”的完整攻略,包含两个示例说明: 1. 背景介绍 在数据分析过程中,常常会遇到需要将多个数据源的数据拼接和整合成一个完整数据集的情况。pandas是常用的数据分析工具之一,提供了多种数据拼接和整合的方式,本攻略将详细讲解pandas数据拼接的实现。 2. 数据拼接的方式 pandas提供了三种数据拼接方式,分别是co…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部