数据来源:
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表之外,还有什么建议吗?我也希望能找到更多关于颜色的资源。
1条答案
按热度按时间dohp0rv51#
1和2。使用droplevel删除多索引。
1.不知道如何调整a条形图中色标的范围。我会考虑使用离散色彩Map表。