如何在熊猫中获得标有“ plot”的多级x轴?

时间:2019-01-05 19:24:37

标签: python pandas matplotlib axis multi-index

我有一个多索引的熊猫数据框,我可以根据需要生成正确形状的图,但是x轴仅显示为多索引的列标题。我正在寻找一套分层标签的方法。

我目前拥有的是:

Current Data Frame

The plot using : df.plot(x=None, y=['Published NIV','Future NIV'], kind='line')

Circled in blue is how I want the axis to look

1 个答案:

答案 0 :(得分:0)

这是我在Stackoverflow上工作最多的问题。我希望这完全适合您的问题。

因此,假设您的期间值是1到48,那是我可以获得此值的唯一方法,这是半小时的数据,我所做的是我在提供日期的半小时内更改了这些值,然后使用格式将其更改为datetimeindex,然后创建绘图。

所以这是代码和最终输出:

m=pd.read_csv("Data3.csv")
final=m[['Published NIV','Future NIV']]

new2=['0:00:00' if a==1 else str(a//2-1)+':30:00' if a%2==0 else str(a//2)+':00:00' for a in m['Settlement Period']]

alpha=m['Settlement Date']+'-'+new2

final.index=pd.to_datetime(alpha,format='%Y-%m-%d-%X')
final.plot(figsize=(15,9))

输出为: enter image description here

此代码的唯一缺点是您不会获得1至48的期间号,通过一些变通办法,我可以尝试带回,但是告诉我这是否适合您的情况。