python线条函数 python线条形状( 六 )


7
794
122
如何用python绘制简单条形图?如何用python绘制简单条形图呢?这里离不开matplotlib的使用 。
条形图是数据可视化图形中很基础也很常用的一种图,简单解释下:条形图也叫长条图(英语:bar chart),亦称条图(英语:bar graph)、条状图、棒形图、柱状图、条形图表,是一种以长方形的长度为变量的统计图表 。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析 。长条图亦可横向排列,或用多维方式表达 。
那么一个普通的条形图是长什么样子的呢?
当!当!当!就是下图的这个样子:
图先亮出来啦,接下来研究这个图是怎么画的吧,先看一下原数据长什么样子:
实际画图的流程和画折线图很相近,只是用到的画图函数不一样 , 绘制条形图的函数plt.bar():
由于这只是最简单的一个条形图,实际上条形图的函数plt.bar()还有不少可以探索的参数设置,和对折线图函数plt.plot()的探索差不多,有兴趣的孩子可以自己去进行探索哦 。
按照条形长短进行排序展示的条形图
当然也可以有其他的设置,比如说上图中的线条高低参差不齐,这是因为x轴的数据是按照学校名称进行排序的,那么可不可以按照分数的高低进行排序呢?也就是让所有的长方形按照从高到矮或者从矮到高的顺序进行排列?
当然可以啦!这里需要强调的是 , 条的高低排列等信息都是来源于原数据的,要想让条形的顺序发生改变,需要对画图的来源数据进行更改呢!
把原数据逆序排序后截取前十名数据赋值给data_yuwen,作为新的数据源传入画图函数plt.bar(),画出来的图自然就不一样了 。
先看一眼数据长什么样子:
根据这个数据源绘制出的图形如下,由于用来画图的数据进行了降序排序操作,所以生成条形图的条也会进行降序排序展示:
很多时候,我们常见的条形图还有另一种展现形式,那就是横向的条形图,比较火的那种动态条形图绝大多数也都是横向的条形图,那么横向的条形图如何绘制呢?
理解plt.bar()主要参数
其实也不难,只要清楚plt.bar()函数中主要参数的作用就可以了!条形图函数中有五个主要参数 , 分别是x,height,width , bottom,orientation 。其中x控制的是每个条在x轴上位置,height控制的是每个条的长度,width控制的是每个条的宽度 , bottom控制的是每个条在y轴方向的起始位置,orientation控制的是条形的方向,是纵向还是横向,默认是纵向的 。
通过一个小例子理解下这几个参数的作用:
上边的几行代码输出的图形如下:
对比着代码和实际输出的条形图 , 各个主要参数的作用是不是一目了然啦?
横向条形图
理解了这几个参数作用后,纵向的条形图转换成横向的条形图就没什么难度了!
需要设置所有条形在x轴的位置都为0,也就全部从最左侧开始画条形;由于是横向条形图,所以实际上条的宽度显示的是数据大?。玾idth参数设置成原数据中的语文成绩;bottom控制每个条在y轴方向的起始位置,设置bottom=range(10)设置每个条形在y轴的起始位置各不相同避免有条形重叠;height控制的是每个条在y轴方向上的长度,条形图横向设置后 , 在y轴上的长度失去了衡量数据的意义 , 所以直接设置一个常数即可;最后设置条形的方向为横向,即orientation=“horizontal” 。
温馨提示:数据和标签一定要匹配,即plt.bar()重点的数据要和plt.yticks()中提取出来的标签一一对应 , 一旦不匹配,整个图展现的结果就是一个错误的结果!

推荐阅读