在python中绘制条形图[重复]
Posted
技术标签:
【中文标题】在python中绘制条形图[重复]【英文标题】:plotting bar graph in python [duplicate] 【发布时间】:2018-05-20 15:34:20 【问题描述】:有人请告诉我如何在 python 中绘制条形图或折线图。 我想绘制一个条形图,x 轴为月份,y 轴为不同列的平均值。
我的数据集示例:
Month Bedroom Outlets Cellar Outlets Bedroom Lights DisposalDishwasher DuctHeaterHRV FridgeRange FurnaceHRV KitchenLights MasterLights MasterOutlets WashingMachine
Jan-16 0.008704 0.074089 0.006081 0.000116 0.000058 0.001162 0.176832 0.000024 0.014887 0.009617 0.000378
Feb-16 0.008187 0.075153 0.005993 0.000102 0.000059 0.001905 0.172289 0.000023 0.01448 0.007724 0.000367
Mar-16 0.007725 0.072855 0.005536 0.000073 0.000048 0.001469 0.1261 0.000015 0.014242 0.005848 0.00024
Apr-16 0.007678 0.074465 0.005729 0.000061 0.000042 0.001129 0.093861 0.000014 0.014267 0.005899 0.000152
May-16 0.007864 0.075408 0.005823 0.000096 0.000102 0.001691 0.116811 0.000029 0.014387 0.007111 0.000406
Jun-16 0.006876 0.07829 0.005587 0.000143 0.000134 0.000937 0.176654 0.000046 0.014229 0.005706 0.000654
Jul-16 0.006032 0.093383 0.006214 0.000193 0.000236 0.000831 0.228637 0.000082 0.014352 0.005174 0.001004
例如,我希望我在 y 轴上的值和 2016 年 1 月在 x 轴上的值,并且上面有一个条形图,显示该特定月份的不同属性的使用情况。
【问题讨论】:
我想要一辆新车。请参阅 How to Ask 和 minimal reproducible example。还有SO checklist. 【参考方案1】:对于使用数据的最通用方式,请使用 pandas。 导入 matplotlib.pyplot 和 pandas 如下:
import matplotlib.pyplot as plt
import pandas as pd
在 pandas 中格式化您的数据,如下所示: 标题列表和数据列表列表:
data = ['Month', 'Bedroom Outlets', 'Cellar Outlets', 'Bedroom Lights', 'DisposalDishwasher', 'DuctHeaterHRV', 'FridgeRange', 'FurnaceHRV', 'KitchenLights', 'MasterLights', 'MasterOutlets', 'WashingMachine']
list_01 = [['Jan-16', 0.008704, 0.074089, 0.006081, 0.000116, 0.000058, 0.001162, 0.176832, 0.000024, 0.014887, 0.009617, 0.000378], ['Feb-16', 0.008187, 0.075153, 0.005993, 0.000102, 0.000059, 0.001905, 0.172289, 0.000023, 0.01448, 0.007724, 0.000367], ['Mar-16', 0.007725, 0.072855, 0.005536, 0.000073, 0.000048, 0.001469, 0.1261, 0.000015, 0.014242, 0.005848, 0.00024], ['Apr-16', 0.007678, 0.074465, 0.005729, 0.000061, 0.000042, 0.001129, 0.093861, 0.000014, 0.014267, 0.005899, 0.000152], ['May-16', 0.007864, 0.075408, 0.005823, 0.000096, 0.000102, 0.001691, 0.116811, 0.000029, 0.014387, 0.007111, 0.000406], ['Jun-16', 0.006876, 0.07829, 0.005587, 0.000143, 0.000134, 0.000937, 0.176654, 0.000046, 0.014229, 0.005706, 0.000654], ['Jul-16', 0.006032, 0.093383, 0.006214, 0.000193, 0.000236, 0.000831, 0.228637, 0.000082, 0.014352, 0.005174, 0.001004]]
data_frame = pd.DataFrame(list_01, columns=data)
data_frame2 = data_frame.set_index(['Month'])
data_frame2.plot.bar()
plt.show()
这将为您提供作为索引的月份以及由带有图例的每个类别的颜色代码表示的列。
【讨论】:
【参考方案2】:你可以使用 plotly 来达到你想要的结果。
安装plotly包
sudo pip install plotly
然后根据需要导入使用
import plotly.plotly as py
import plotly.graph_objs as go
data = [go.Bar( x=['jan', 'feb', 'mar'], y=[20, 14, 23] )]
py.iplot(data, filename='basic-bar')
在您的情况下,将数据框中的月份列传递给 x 并将值传递给 y 作为输入。
Plotly documentation
Bar charts in plotly
【讨论】:
以上是关于在python中绘制条形图[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python使用matplotlib绘制柱状图(bar plot)实战:水平条形图垂直条形图分组条形图堆叠条形图