【问题标题】:Pandas Plotting Legend and Colormap Question (Much Appreciated)Pandas 绘制图例和颜色图问题(非常感谢)
【发布时间】:2023-02-06 22:12:40
【问题描述】:

数据:

    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 column 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. 图例中的“None,Item”行是什么,我怎样才能去掉它?
  2. 如何让图例仅显示分组第二列(“项目”)中的值?例如,我希望图例显示“PayPal”和“Gasoline”,而不是类似元组的“(Price, PayPal)”和“(Price, Gasoline)”。
  3. 我希望图形颜色与图形(蓝色主题)中的颜色相似,但其中一种颜色太浅。我可以移动默认颜色图(例如“蓝色”)的色谱以使浅色变暗吗?对于像我这样被颜色图吓倒的菜鸟,除了默认颜色图之外还有什么建议吗?我也很感激任何有关更多地了解颜色的资源。

【问题讨论】:

    标签: python pandas matplotlib group-by


    【解决方案1】:
    d1_sorted.unstack().droplevel(level=0,axis=1).plot(kind = 'bar', title = 'Total Expense', stacked = True, figsize = (15,10), colormap = 'Pastel2')
    

    1 和 2. 使用 droplevel 删除 multiIndex。

    1. 不确定如何调整条形图中色标的范围。我会考虑使用离散颜色图。

    【讨论】:

      猜你喜欢
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多