当数据的列是每月的每一天时,如何绘制条形图?

时间:2019-08-21 03:46:21

标签: python-3.x jupyter-notebook

enter image description here

我不知道如何绘制这张照片那样的条形图。

有人可以帮我吗?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

FROM centos:7.6.1810 RUN yum update -y && yum clean all RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm \ && yum install -y python36u python36u-libs python36u-devel python36u-pip \ && yum install -y environment-modules mpich mpich-devel gcc-c++ \ && yum install -y git && update-alternatives --install /usr/bin/python python /usr/bin/python2 50 \ && update-alternatives --install /usr/bin/python python /usr/bin/python3.6 60 \ && echo "source /usr/share/Modules/init/bash" >> /root/.bashenv \ && echo "module load mpi/mpich-x86_64" >> /root/.bashenv \ && echo "[[ -s ~/.bashenv ]] && source ~/.bashenv" >> /root/.bash_profile \ && echo "[[ -s ~/.bashenv ]] && source ~/.bashenv" >> /root/.bashrc ENV BASH_ENV=/root/.bashenv WORKDIR /app 命令pandas接受一个Series.plot.bar关键字,您可以在其中输入颜色列表(采用RGBA或颜色名称)。当列表太短时,我不确定该命令遵循什么逻辑,但是如果列表长度正确,它将起作用。 示例:

color

已编辑:

从您的评论中,我认为我可以理解您的问题。将来,请通过提出更清晰的问题来帮助社区帮助您。

要绘制每个月的值总和,并按照示例中的数据结构进行操作,

数据(请参阅-仍然可以使用的最小示例):

%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() 拆分时的第二项:

'_'

然后,您可以按月份(see groupby from docs)分组,并绘制条形图:

df2.index = [x.split('_')[1] for x in df2.index]
df2.index.rename('month', inplace=True)