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中查找两行之间的差异

    在Pandas中查找两行之间的差异通常可以用 diff() 方法来实现。 加载数据 首先,在 Pandas 中加载需要对比的数据。例如,我们加载以下数据: import pandas as pd data = { ‘name’: [‘Tom’, ‘Jerry’, ‘Mary’, ‘Rose’, ‘John’], ‘age’: [28, 23, 25, 27,…

    python-answer 2023年3月27日
    00
  • pandas表连接 索引上的合并方法

    pandas表连接 索引上的合并方法 在进行数据处理和分析时,经常需要将多个表格进行合并。Pandas提供了多种方法来实现表格合并,本篇攻略将重点介绍如何使用索引上的合并方法。 在进行Pandas表格合并时,索引的作用非常重要。Pandas提供了四种主要的索引上的表格合并方法,分别是concat、merge、join和append。下面将依次介绍这四种方法。…

    python 2023年6月13日
    00
  • 如何在Python中改变Pandas的日期时间格式

    在Python中,Pandas是一个非常流行的数据处理库,它可以用来读取、处理、分析和操作各种数据类型,其中包括日期时间数据。在使用Pandas进行数据分析时,经常需要对日期时间格式进行操作,比如将日期时间格式改变为另一种格式。下面是在Python中改变Pandas的日期时间格式的完整攻略,包括常见的转换方法和实例说明。 1. 读取数据 首先,我们需要读取包…

    python-answer 2023年3月27日
    00
  • 在Pandas DataFrame中基于现有的列创建一个新的列

    在Pandas DataFrame中基于现有的列创建一个新的列,可以通过多种方式实现,常见的方法包括: 使用apply函数 使用assign函数 直接通过索引创建新列 下面分别介绍三种方法的详细步骤和实例说明。 使用apply函数 apply函数可以对DataFrame的某一列进行遍历和操作,具体步骤如下: 定义一个操作函数。 使用apply函数将操作函数应…

    python-answer 2023年3月27日
    00
  • Pandas GroupBy

    Pandas GroupBy是Pandas数据分析库中一个十分常用的功能,它常常和其他一些数据处理函数(比如agg、apply等)一同使用,在数据处理中起到了至关重要的作用。 什么是Pandas GroupBy Pandas GroupBy是一种基于某个键对数据集进行切片、划分和分解的方法。数据集根据一个或多个键(可以是函数、数组、DataFrame列名等)…

    python-answer 2023年3月27日
    00
  • 如何用Pandas在Python中为DataFrame或系列添加元数据

    为DataFrame或Series添加元数据是很常见的需求,Pandas提供了两种方法来实现这个功能。下面将详细介绍这两种方法,并给出示例说明。 1. 使用属性 我们可以使用属性的方式来为DataFrame或Series添加元数据,Pandas为其提供了一个叫做attrs的属性,该属性是一个字典,我们可以将元数据作为字典的值加入其中。 示例: import …

    python-answer 2023年3月27日
    00
  • pandas dataframe的合并实现(append, merge, concat)

    下面是Pandas DataFrame的合并实现攻略: 1. Pandas DataFrame合并操作的几种实现方法 Pandas DataFrame合并操作主要包括append、merge和concat三种方法。这三种方法的具体实现方式和适用场景有所不同,下面将分别进行介绍。 1.1 Pandas DataFrame中的append方法 append方法可…

    python 2023年5月14日
    00
  • Pandas中describe()函数的具体使用

    当我们探索数据集的时候,常常会需要获取数据集的基本统计信息。在 Pandas 中,我们可以使用 describe() 函数来完成这个任务。 描述性统计信息 describe() 函数可以为数据集提供描述性统计信息。该函数将计算如下统计量: count(数量) mean(平均值) std(标准差) min(最小值 25% 百分位数 50% 百分位数 75% 百…

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