我不知道如何像这张照片一样绘制条形图。
有人可以帮我吗?
该pandas
命令Series.plot.bar
接受一个color
关键字,您可以在其中输入颜色列表(RGBA 或颜色名称)。我不完全确定当列表太短时命令遵循什么逻辑,但如果列表长度合适,它会起作用。例子:
%matplotlib inline
import pandas as pd
this_series = pd.Series([0.5, 0.6, 0.1, 0.1, 0.05, 0.05, 0.7, 0.3, 0.2], name='foo')
this_series.plot.bar(color=['blue','black', 'brown', 'red','red','green','yellow'])
编辑:
从您的评论中,我想我可以理解您的问题。将来,请帮助社区通过制作更清晰的问题来帮助您。
要绘制每月值的总和,您的数据结构如示例中所示,您可以这样做:
数据(请参阅 - 仍然足以使用的最小示例):
df = pd.DataFrame(columns = ['hour_formatted', '11_jan_18', '13_jan_18', '14_mar_18'],
data = [['00:00', 3, 3, 4], ['00:01', 6, 3, 4], ['00:01', 100, 300, 500]])
“小时”是不需要的,我们可以对每天的数据值求和(毕竟,我们将按月对它们求和……我认为是这样)。
df2 = df.drop('hour_formatted', axis=1).sum()
之后,我们只需要从当天开始的月份。在您的格式中,它是分割时的第二项'_'
:
df2.index = [x.split('_')[1] for x in df2.index]
df2.index.rename('month', inplace=True)
之后,您可以按月分组(参见文档中的 groupby),并绘制条形图:
df3 = df2.reset_index().groupby('month').sum()[0] # the [0] part is to take first column from a dataframe that's created here. There might be a more elegant way
df3.plot.bar(color=['black', 'red'])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句