小白学 Python 数据分析(18):Matplotlib(三)常用图表(上) (2)

在 Matplotlib 中使用的是 bar() 方法,还是先看下 bar() 的语法:

atplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs) 参数 接收值 说明 默认值
left   array   x 轴;    
height   array   柱形图的高度,也就是y轴的数值;    
alpha   数值   柱形图的颜色透明度 ;   1  
width   数值   柱形图的宽度;   0.8  
color(facecolor)   string   柱形图填充的颜色;   随机色  
edgecolor   string   图形边缘颜色   None  
label   string   解释每个图像代表的含义    
linewidth(linewidths / lw)   数值   边缘or线的宽度   1  

其他详细的用法可以参考官方文档:https://matplotlib.org/api/pyplot_api.html 。

我们还是先来一个简单的示例,数据依然使用上面的数据:

import matplotlib.pyplot as plt import numpy as np # 处理中文乱码 plt.rcParams['font.sans-serif']=['SimHei'] x_data = np.array([2011,2012,2013,2014,2015,2016,2017]) y_data = np.array([58000,60200,63000,71000,84000,90500,107000]) y_data_1 = np.array([78000,80200,93000,101000,64000,70500,87000]) plt.title(label='xxx 公司 xxx 产品销量') plt.bar(x_data, y_data, width=0.5, alpha=0.6, facecolor = 'deeppink', edgecolor = 'darkblue', lw=2, label='产品销量') plt.legend() plt.savefig("bar_demo_1.png")

width : 柱子的宽度

alpha : 透明度

facecolor : 柱子填充色

edgecolor : 柱子轮廓色

lw : 柱子轮廓宽度

label : 图例

结果如下:

小白学 Python 数据分析(18):Matplotlib(三)常用图表(上)

并排柱状图

我们还有一组数据,接下来是两个柱形图并列显示,这里调用的还是 bar() ,只不过需要调整的是柱子的位置:

import matplotlib.pyplot as plt import numpy as np # 处理中文乱码 plt.rcParams['font.sans-serif']=['SimHei'] x_data = np.array([2011,2012,2013,2014,2015,2016,2017]) y_data = np.array([58000,60200,63000,71000,84000,90500,107000]) y_data_1 = np.array([78000,80200,93000,101000,64000,70500,87000]) plt.title(label='xxx 公司 xxx 产品销量') plt.bar(x_data, y_data, width=0.3, alpha=0.6, facecolor = 'pink', edgecolor = 'blue', lw=1, label='产品销量') plt.bar(x_data + 0.3, y_data_1, width=0.3, alpha=0.6, facecolor = 'blue', edgecolor = 'blue', lw=1, label='用户增长数') plt.legend() plt.savefig("bar_demo_2.png")

这里比较重要的是 x_data + 0.3 ,相当于把用户量的柱子向右移动了 0.3 ,否则会造成重合。

结果如下:

小白学 Python 数据分析(18):Matplotlib(三)常用图表(上)

堆积柱状图

还有一种柱形图是堆积柱形图,就是把柱状图堆叠在一起,我们还是通过示例来看:

import matplotlib.pyplot as plt import numpy as np # 处理中文乱码 plt.rcParams['font.sans-serif']=['SimHei'] x_data = np.array([2011,2012,2013,2014,2015,2016,2017]) y_data = np.array([58000,60200,63000,71000,84000,90500,107000]) y_data_1 = np.array([78000,80200,93000,101000,64000,70500,87000]) plt.title(label='xxx 公司 xxx 产品销量') plt.bar(x_data, y_data, width=0.3, alpha=0.6, facecolor = 'pink', edgecolor = 'blue', lw=1, label='产品销量') plt.bar(x_data, y_data_1, bottom=y_data, width=0.3, alpha=0.6, facecolor = 'blue', edgecolor = 'blue', lw=1, label='用户增长数') plt.legend() plt.savefig("bar_demo_3.png")

这种堆积柱状图主要是通过参数 bottom 来实现的,含义是底部开始的位置。

结果如下:

小白学 Python 数据分析(18):Matplotlib(三)常用图表(上)

横向柱状图

其实横向柱状图应该是叫条形图,而且使用的方法也不再是 bar() 了,而是变成了 barh() 。

咦,这个看起来和 bar() 很像嘛,有可能是兄弟关系。

语法如下:

matplotlib.pyplot.barh(y, width, height=0.8, left=None, *,, **kwargs)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgysw.html