【问题标题】:Plotting two curves with different x-datapoints in the same figure (Python, Pandas)在同一图中绘制具有不同 x 数据点的两条曲线(Python,Pandas)
【发布时间】:2017-12-04 10:29:21
【问题描述】:

我想在同一个图中显示两条具有不同 x 数据点的曲线:

import pandas as pd

df1 = pd.DataFrame()
df1['Date']= ['2014-12-31', '2015-12-31', '2016-12-31', '2017-12-31']
df1['Value'] = [22, 44, 11, 55]
df2 = pd.DataFrame()
df2['Date']= ['2015-03-31', '2015-07-31', '2015-8-31', '2015-12-31']
df2['Value'] = [34, 39, 31, 27]

ax1 = df1.plot(x='Date', marker='o')
df2.plot(ax=ax1, marker='o')

在上面的代码中,第二条曲线(df2-data)使用 df1-data 的 x 数据点,而不是它自己的。

我可以通过操作数据使其工作(例如,相应地在 df1 和 df2 中添加缺失的日期和 NaN),但我想知道是否有类似简单设置的东西直接在 df.plot()-功能。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    注意:我确实使用 df['Date'] = 将这些日期转换为日期时间 pd.to_datetime(df.Date)

    一种方法是使用pd.concat,然后使用pandas plot:

    pd.concat([df1,df2], keys=['df1','df2'])\
      .set_index('Date', append=True)\
      .unstack(0)['Value']\
      .reset_index(0, drop=True)\
      .fillna(0).plot(marker='o')
    

    更像是散点图:

    pd.concat([df1,df2], keys=['df1','df2'])\
       .set_index('Date', append=True)\
       .unstack(0)['Value']\
       .reset_index(0, drop=True)\
       .plot(marker='o',linestyle='none')
    

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多