You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现两个CSV文件绘图合并并添加次Y轴

合并主次Y轴绘图的解决方案

要将两个CSV文件的变量合并到同一绘图(C在主Y轴,rew_binary在次Y轴),你需要复用同一个matplotlib轴对象,避免pandas自动创建独立绘图。修改后的代码如下:

from pathlib import Path
import pandas as pd
import matplotlib.pyplot as plt

files = Path('./mA1_2022_03_23_csplit').glob('*.csv')
recode = pd.read_csv('./mA1_2022_03_23_recode.csv', index_col=0)

for file in files:
    df = pd.read_csv(file, index_col=0)
    # 创建画布与主Y轴对象
    fig, ax1 = plt.subplots()
    
    # 绘制主Y轴的C曲线
    ax1.plot(df['time_ms'], df['C'], color='tab:blue')
    ax1.set_xlabel('time_ms')
    ax1.set_ylabel('C', color='tab:blue')
    ax1.tick_params(axis='y', labelcolor='tab:blue')
    ax1.set_title(file.name)
    
    # 创建共享X轴的次Y轴
    ax2 = ax1.twinx()
    # 绘制次Y轴的rew_binary柱状图
    ax2.bar(recode['time_ms'], recode['rew_binary'], color='tab:orange', alpha=0.5)
    ax2.set_ylabel('rew_binary', color='tab:orange')
    ax2.tick_params(axis='y', labelcolor='tab:orange')
    
    # 自动调整布局,防止标签重叠
    fig.tight_layout()
    plt.show()

关键说明

  • 放弃df.plot()和recode.plot()的独立绘图模式,基于同一个ax1轴对象扩展绘图
  • ax1.twinx()生成的次轴与主轴共享X轴,保证两个变量的时间轴完全对齐
  • 为两个轴设置不同颜色,直观区分主次Y轴的变量
  • 给柱状图添加alpha=0.5的半透明效果,避免遮挡主Y轴的曲线内容

内容的提问来源于stack exchange,提问作者ChaseBandz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:55:47