前言
条形图的绘制方式跟折线图非常的类似,只不过是换成了plt.bar方法。plt.bar方法有以下常用参数:
- x:一个数组或者列表,代表需要绘制的条形图的x轴的坐标点。
- height:一个数组或者列表,代表需要绘制的条形图y轴的坐标点。
- width:每一个条形图的宽度,默认是0.8的宽度。
- bottom:y轴的基线,默认是0,也就是距离底部为0.
- align:对齐方式,默认是center,也就是跟指定的x坐标居中对齐,还有为edge,靠边对齐,具体靠右边还是靠左边,看width的正负。
- color:条形图的颜色。
返回值为BarContainer,是一个存储了条形图的容器,而条形图实际上的类型是matplotlib.patches.Rectangle对象。
横向条形图:
横向条形图需要使用plt.barh这个方法跟bar非常的类似,只不过把方向进行旋转。
参数跟bar类似,但也有区别。如下:
- y:数组或列表,代表需要绘制的条形图在y轴上的坐标点。
- width:数组或列表,代表需要绘制的条形图在x轴上的值(也就是长度)。
- height:条形图的高度,默认是0.8。
- left:条形图的基线,也就是距离y轴的距离。
- 其他参数跟bar一样。
返回值也是BarContainer容器对象。
还是以以上数据为例,将电影名和票房反转一下。
示例代码如下:
movies = {
# 更多资源、源码、解答可加:832157862
"流浪地球":40.78,
"飞驰人生":15.77,
"疯狂的外星人":20.83,
"新喜剧之王":6.10,
"廉政风云":1.10,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
plt.barh(np.arange(len(movies)),list(movies.values()))
plt.yticks(np.arange(len(movies)),list(movies.keys()),fontproperties=font)
plt.grid()
效果图如下:
条形图的绘制:
比如现在有2019年贺岁片票房的数据(数据来源:https://piaofang.maoyan.com/dashboard)
#票房单位亿元
movies = {
"流浪地球":40.78,
"飞驰人生":15.77,
"疯狂的外星人":20.83,
"新喜剧之王":6.10,
"廉政风云":1.10,
"神探蒲松龄":