为什么绘制数据透视表时,图例的标题中没有'None'?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么绘制数据透视表时,图例的标题中没有'None'?相关的知识,希望对你有一定的参考价值。
我有一个数据框,然后调用pivot_table
方法,然后绘制结果。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'Date': ['2020-04-10', '2020-04-11', '2020-04-12', '2020-04-13','2020-04-10', '2020-04-11', '2020-04-12', '2020-04-13'],
'Station': ['Hogwarts', 'Hogwarts', 'Hogwarts', 'Hogwarts','Hogwarts', 'Hogwarts', 'Hogwarts', 'Hogwarts'],
'Direction': ['Southbound', 'Southbound', 'Southbound', 'Southbound','Northbound','Northbound','Northbound','Northbound'],
'Daily trains': [1,1,2,3,0,0,2,1]})
df['Date'] = pd.to_datetime(df['Date'],format="%Y-%m-%d")
df1 = df.pivot_table(index='Date', columns=['Station','Direction'],values=['Daily trains'])
fig, ax = plt.subplots(1)
df1.plot(ax=ax)
ax.figure.savefig('so.png',bbox_inches='tight')
这里是结果:
为什么我在图例的标题中得到'None'
?
答案
它标记列名称。
df1.columns.names
FrozenList([None, 'Station', 'Direction'])
您提供的是list
值,但只有一个值,因此它在您的MultiIndex列中创建了不必要的级别。删除那个。
...
df1 = df.pivot_table(index='Date', columns=['Station','Direction'], values='Daily trains')
fig, ax = plt.subplots(1)
df1.plot(ax=ax)
ax.figure.savefig('so.png',bbox_inches='tight')
以上是关于为什么绘制数据透视表时,图例的标题中没有'None'?的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError:'NoneType'对象没有属性'legendHandles',而在自定义图例中为每个标签手动分配颜色时