Pandas绘制图例和色彩图问题(非常感谢)

xmq68pz9  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(134)

数据来源:

import numpy as np
    import pandas as pd

    #Data creation
    d1 = pd.DataFrame({"Date" : ['1/1/2022', '12/15/2010', '6/1/2015', '1/31/2022', '12/31/2010', '3/10/2009', '1/7/2022', '12/9/2010','12/20/2010','1/13/2022'],
               "Item": ['Food', 'Food', 'Gasoline', 'Coffee', 'Coffee', 'PayPal', 'Gasoline', 'Gasoline','Gasoline','Coffee'],
               "Price": [3.89, 7.00, 11, 0.99, 8.01, 99, 76, 50,48,9]})

    #Change Date column to datetime
    d1['Date'] = pd.to_datetime(d1['Date'])

    #Create MMM-YY columm from Date column
    d1['MMM-YY'] = d1['Date'].dt.strftime('%b') + '-' + d1['Date'].dt.strftime('%y')

    #Sort DataFrame by Date
    d1.sort_values('Date', inplace=True)

    #Groupy by MMM-YY, Item and sum Price
    d1_sorted = d1.groupby(['MMM-YY','Item'], sort = False)[['Price']].sum()

    d1_sorted

                      Price
    MMM-YY  Item    
    Mar-09  PayPal    99.00
    Dec-10  Gasoline  98.00
            Food       7.00
            Coffee     8.01
    Jun-15  Gasoline  11.00
    Jan-22  Food       3.89
            Gasoline  76.00
            Coffee     9.99

我使用下面的代码行来绘制数据:

d1_sorted.unstack().plot(kind = 'bar', title = 'Total Expense', stacked = True, figsize = (15,10), colormap = 'Blues')

输出量:

我有三个问题:
1.图例中的“无,项目”行是什么?如何删除它?
1.如何使图例只显示分组的第二列(“Item”)中的值?例如,我希望图例显示“PayPal”和“Gasoline”,而不是类似于元组的“(Price,PayPal)”和“(Price,Gasoline)"。
1.我希望图表的颜色与图表中的颜色相似(蓝色主题),但是其中一种颜色太浅了。我可以改变默认色彩Map表(如“blues”)的色谱以使浅色更深吗?对于像我这样被色彩Map表吓倒的新手来说,除了默认色彩Map表之外,还有什么建议吗?我也希望能找到更多关于颜色的资源。

dohp0rv5

dohp0rv51#

d1_sorted.unstack().droplevel(level=0,axis=1).plot(kind = 'bar', title = 'Total Expense', stacked = True, figsize = (15,10), colormap = 'Pastel2')

1和2。使用droplevel删除多索引。
1.不知道如何调整a条形图中色标的范围。我会考虑使用离散色彩Map表。

相关问题