如何去掉Pandas plot()的额外传奇条目?

2024-09-30 14:36:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据帧:

>>> drawdata
                   sales       mg
ID     RPT_Date                  
600809 20120331  22.1401  13.5591
       20120630  38.1565  22.8968
       20120930  52.5098  31.5909

下面的命令绘制条形图,如下图所示:

^{pr2}$

enter image description here

我的问题显示为注释:如何删除多余的图例项?在

(此url相关: How to barplot Pandas dataframe columns aligning by sub-index?

编辑:(有关HYRY方法的更多信息)


# -*- coding: utf-8 -*-

import itertools
import pandas as pd
import io

text = '''\
ID RPT_Date sales mg
000568 20120331 22.140 13.559
000568 20120630 38.156 22.896
000568 20120930 52.509 31.590
'''

drawdata = pd.read_csv(io.BytesIO(text), delimiter = ' ', converters = {0:str})
drawdata.set_index(['ID','RPT_Date'], inplace = True)

ax  = drawdata.unstack('ID').plot(kind='bar', use_index=True, legend=False)

display_acct_list = list(drawdata.columns)
legend_list = list(itertools.product(display_acct_list, list(set(drawdata.index.get_level_values('ID')))))
legend_list = [x[0] + '-' + x[1] for x in legend_list]

ax.legend(legend_list, loc='best', fancybox=True, shadow=True)

ax.set_xlabel("")

图表缺少图例中的“颜色框”。在

enter image description here


Tags: columnsimportidtruedateindexaxlist
1条回答
网友
1楼 · 发布于 2024-09-30 14:36:16

可以通过以下方式关闭图例标题:

drawdata.unstack('ID').plot().get_legend().set_title("")

或者你可以自己画这个传说:

^{pr2}$

关于第二个问题:

那是因为图中有一条虚线,如果你把它放大一点,你就会看到它。设置图例标签时,第一个标签将给出虚线。您可以通过以下行进行修复:

^{3}$

相关问题 更多 >