python 用Matplotlib作图中有多个Y轴

yizhihongxing

当需要在一个图中,将两个或以上的不同的 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数值计算与排序方法

    pandas数值计算与排序方法 一、数值计算 加(+)、减(-)、乘(*)、除(/)运算 Pandas 支持常见的数值计算运算符,可以对一维或多维 DataFrame/Series 数值进行计算。 例如,我们想要对两个 DataFrame 等大小的数据集进行加法计算: import pandas as pd # 创建两个数据集 df1 = pd.DataFr…

    python 2023年5月14日
    00
  • 如何在Pandas中计算加权平均数

    计算加权平均数可以使用Pandas中的weighted_avg()函数,该函数主要用于计算加权平均数。 详细步骤如下: 从Pandas库中导入Series和weighted_avg函数: python import pandas as pd from pandas import Series from pandas.api import types from…

    python-answer 2023年3月27日
    00
  • 按标签名称或按索引位置在DataFrame中删除列

    删除列是数据分析中常用的操作之一,Pandas提供了按标签名称或按索引位置删除列的方法,下面是详细的攻略: 按标签名称删除列 按标签名称删除列可以通过DataFrame的drop方法实现,具体步骤如下: 确定要删除的列的标签名称是什么,例如我们要删除列名为col1的列; 使用drop方法删除列,其中参数labels传入一个列表,包含要删除的列标签名称,参数a…

    python-answer 2023年3月27日
    00
  • Pandas 常用函数

    那么下面我来详细讲解Pandas常用函数的完整攻略,包含一些实例说明。 一、Pandas概述 Pandas是一个基于NumPy的Python数据分析库,可用于大量数据处理任务,例如合并、切片、筛选、聚合等数据处理。它具有以下优点: 提供了灵活的数据结构DataFrame和Series,方便数据操作; 可以高效地处理大型数据集; 可以自动对齐数据; 可以快速处…

    python-answer 2023年3月27日
    00
  • Python Pandas – 返回区间的中点

    当我们在Python Pandas中处理数据的时候,有时候需要计算每个区间的中点。这个操作需要用到Pandas的cut函数和groupby函数。 首先,我们需要将数据分成区间。我们可以使用cut函数来实现这个目的。cut函数接收一个数据集和一个区间列表,它返回一个Categorical对象,即分组好的数据集。 import pandas as pd # 生成…

    python-answer 2023年3月27日
    00
  • Pandas.DataFrame时间序列数据处理的实现

    当我们处理时间序列数据时,Pandas.DataFrame是一个非常方便实用的工具。在实现时间序列数据处理时,应遵循以下步骤: 1. 读取数据 读取数据是使用Pandas.DataFrame的第一步。可以通过多种方式读取数据,如csv、txt、Excel等。下面是读取CSV文件的示例代码: import pandas as pd df = pd.read_c…

    python 2023年5月14日
    00
  • pandas实现一行拆分成多行

    当我们处理数据时,有时需要把一个单元格中的文本拆分成多个部分,以便更好地处理和分析。Pandas是一种常用的Python数据处理工具,可以方便地实现一行拆分成多行。以下是详细攻略: 读取数据 首先需要读取数据,可以使用Pandas中的read_csv()函数将数据读取为DataFrame格式。例如: import pandas as pd df = pd.r…

    python 2023年6月13日
    00
  • 在Python中用Pandas绘制多重密度图

    下面是在Python中用Pandas绘制多重密度图的完整攻略。 1. 导入库和数据集 首先,我们要导入必要的库,包括Pandas、Matplotlib和Seaborn。下面是代码: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 导入数据集 df = pd…

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