python 用Matplotlib作图中有多个Y轴

当需要在一个图中,将两个或以上的不同的 Y 轴进行同步展示时,可以借助 Matplotlib 库实现。以下是实现方法的完整攻略。

1. 导入 Matplotlib 库

import matplotlib.pyplot as plt

2. 新建画布和子图

  • figsize 参数用于设置画布的大小
  • constrained_layout 参数可以使图表自动调整大小,防止子图间互相重叠
fig, ax1 = plt.subplots(figsize=(8,6),constrained_layout=True)

3. 添加第一个 Y 轴

ax1.set_ylabel('y1', fontsize=16)

4. 添加第二个 Y 轴

ax2 = ax1.twinx()
ax2.set_ylabel('y2', fontsize=16)

5. 绘制第一个 Y 轴对应的曲线

ax1.plot(x, y1, label='y1_label')

6. 绘制第二个 Y 轴对应的曲线

ax2.plot(x, y2, label='y2_label')

7. 添加图例

ax1.legend(loc='upper left')
ax2.legend(loc='upper right')

下面是两条具体示例:

示例1:双 Y 轴同步显示

import numpy as np

#生成数据
x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.exp(x/10)

#新建画布
fig, ax1 = plt.subplots(figsize=(8,6),constrained_layout=True)

#添加第一个 Y 轴
ax1.set_ylabel('y1', fontsize=16)

#添加第二个 Y 轴
ax2 = ax1.twinx()
ax2.set_ylabel('y2', fontsize=16)

#绘制第一个 Y 轴对应的曲线
ax1.plot(x, y1, label='y1_label')

#绘制第二个 Y 轴对应的曲线
ax2.plot(x, y2, label='y2_label')

#添加图例
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')

#显示图表
plt.show()

示例2:三 Y 轴同步显示

import numpy as np

#生成数据
x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.exp(x/10)
y3 = np.log(x)

#新建画布
fig, ax1 = plt.subplots(figsize=(8,6),constrained_layout=True)

#添加第一个 Y 轴
ax1.set_ylabel('y1', fontsize=16)

#添加第二个 Y 轴
ax2 = ax1.twinx()
ax2.set_ylabel('y2', fontsize=16)

#添加第三个 Y 轴
ax3 = ax1.twinx()
ax3.spines['right'].set_position(('axes', 1.2))
ax3.set_ylabel('y3', fontsize=16)

#绘制第一个 Y 轴对应的曲线
ax1.plot(x, y1, label='y1_label')

#绘制第二个 Y 轴对应的曲线
ax2.plot(x, y2, label='y2_label')

#绘制第三个 Y 轴对应的曲线
ax3.plot(x, y3, label='y3_label', color='green')

#添加图例
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')
ax3.legend(loc='lower right')

#显示图表
plt.show()

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 用Matplotlib作图中有多个Y轴 - Python技术站

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

相关文章

  • 对Pandas MultiIndex(多重索引)详解

    对Pandas MultiIndex(多重索引)详解 在 Pandas 中,MultiIndex 是一种针对具有多个级别的 Series 或 DataFrame 提供索引的技术。如果你的数据集中存在多个维度,那么你可能需要使用 MultiIndex 进行数据处理和分析。本文将介绍 MultiIndex 的相关知识以及其重要性和实用性。 什么是 MultiIn…

    python 2023年5月14日
    00
  • inplace在Pandas中是什么意思

    在Pandas中,inplace是一个常用的参数,用于决定是否直接更改原始数据。通俗地说,如果inplace=True,则表明函数执行后会更改原始数据,并返回None;如果inplace=False(默认值),则表明函数会返回更改后的新数据,并不会修改原始数据。 具体来说,inplace的使用通常比较适用于处理大量数据时,因为在处理大量数据时,避免在原始数据…

    python-answer 2023年3月27日
    00
  • Python数据分析之 Pandas Dataframe合并和去重操作

    让我来为你详细讲解“Python数据分析之 Pandas Dataframe合并和去重操作”的完整攻略。 Pandas Dataframe合并操作 1. concat函数 使用 concat 函数可以将两个或多个DataFrame对象按行或列连接成一个数据集。 按行连接 import pandas as pd # 创建两个dataframe对象 df1 = …

    python 2023年5月14日
    00
  • 如何获取Pandas数据框架的第一行

    对于 Pandas 数据框架,获取第一行数据的方式有多种。以下是其中一些常见的方式: 方法一:使用 iloc 方法 可以使用 iloc 方法来获取指定行数的行数据。 iloc 方法的参数是一个整数,表示要获取的行数,从0开始计数。例如,要获取 Pandas 数据框架的第一行数据,可以使用如下代码: import pandas as pd # 创建一个示例的 …

    python-answer 2023年3月27日
    00
  • 对pandas中时间窗函数rolling的使用详解

    首先我们来看一下什么是pandas中的时间窗函数rolling。rolling是pandas库中的时间窗口函数,它可以让我们实现类似于滑动平均的计算方式。具体而言,我们可以创建一个滑动窗口,来计算任意时刻窗口内的数据统计指标(如均值、标准差等)。下面是rolling函数的基本格式: rolling(window[, min_periods, center, …

    python 2023年5月14日
    00
  • 在Pandas中使用散点矩阵绘制配对图

    散点矩阵(Scatter Matrix)是基于 Pandas 的一个绘图函数。它们绘制一组变量的散点图矩阵。散点图矩阵对于观察多个相互关联的变量之间的关系非常有用。在 Pandas 中,我们可以使用 scatter_matrix 函数实现散点矩阵的绘制。 下面我们就来讲一下如何在 Pandas 中使用 scatter_matrix 绘制配对图,并提供一个例子…

    python-answer 2023年3月27日
    00
  • pd.drop_duplicates删除重复行的方法实现

    pd.drop_duplicates删除重复行的方法实现 如果你在数据处理的过程中遇到了重复的行,那么你可以使用pd.drop_duplicates()方法来删除这些行。 语法格式 DataFrame.drop_duplicates([subset=None, keep=’first’, inplace=False]) 参数说明: subset:用来指定需要…

    python 2023年6月13日
    00
  • 对Pandas数据框架的行进行排序

    对Pandas数据框架的行进行排序,可以使用sort_values()方法。sort_values()方法可以根据一个或多个列进行升序或降序排列。 下面是对Pandas数据框架的行进行排序的完整攻略: 1. 导入必要的库 import pandas as pd 2. 创建示例数据框架 为了演示如何对Pandas数据框架的行进行排序,我们需要创建一个数据框架作…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部