如何用python绘制简单条形图?
发布网友
发布时间:2022-04-21 17:58
我来回答
共1个回答
热心网友
时间:2023-11-10 17:17
如何用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,也就全部从最左侧开始画条形;由于是横向条形图,所以实际上条的宽度显示的是数据大小,将width参数设置成原数据中的语文成绩;bottom控制每个条在y轴方向的起始位置,设置bottom=range(10)设置每个条形在y轴的起始位置各不相同避免有条形重叠;height控制的是每个条在y轴方向上的长度,条形图横向设置后,在y轴上的长度失去了衡量数据的意义,所以直接设置一个常数即可;最后设置条形的方向为横向,即orientation=“horizontal”。
温馨提示:数据和标签一定要匹配,即plt.bar()重点的数据要和plt.yticks()中提取出来的标签一一对应,一旦不匹配,整个图展现的结果就是一个错误的结果!
上述代码生成的条形图如下:
感觉上边这种生成横向条形图的方式有点点绕,和人们的习惯认知有点不大一样,难道画一个横向条形图就非得转变自己的习惯认知这么*吗?
当然不是的,实际上有更简单的方法绘制一个横向条形图,之所以没有一开始就直接用这种简单的方法,也是为了让大家体会下条形图参数的灵活设置而已,而且如果比较绕的方法都能理解了,简单的方法理解和运用起来就更没有难度了啊!
不卖关子了,我们来认识下和plt.bar()函数类似的plt.barh()函数。
plt.barh()函数是专门绘制水平条形图的函数,主要的参数有:
y 控制y轴显示的标签来源width 控制横向条形的长度,即用来进行对比的数据源height 条形的宽度需要设置的参数主要就是这三个,比用plt.bar()函数绘制水平条形图简单了很多,具体代码如下:
效果图:
和用plt.bar()函数绘制的横向条形图一毛一样对不对?以后有需求绘制横向条形图,尽量用plt.barh()函数吧,毕竟它是专门绘制这种类型图的,简单好用。
然而实际工作中对于条形图的需求不只是这些,比如例子中只是对各个学校语文成绩的展示,有时候需要各个学科的成绩同时展现在一幅条形图中,有时候也需要绘制堆积条形图对各学科的成绩以及总成绩进行展示,这些图又该如何绘制呢?其实只要理解了各个参数的含义,绘制这些图也不在话下,至于具体怎么画,且看下回分解啊!
这个条形图是怎么做的?求具体步骤!!!
一、选择合适的工具 1. 选择一款数据处理软件,如Excel、Python的matplotlib库,或是使用在线的数据可视化工具,如Tableau、FineBI等。二、收集和整理数据 2. 根据需要收集的数据信息,将其整理成适合分析的格式。例如,列出各类别的名称和对应的数值。三、创建条形图 3. 在所选工具中,选择创建条形图的...
如何使用Python绘制常用的统计图表?
绘制直方图:直方图用于展示连续变量的分布。通过将变量划分为若干区间,并统计每个区间的样本数量,最后以条形图的形式展示,其中条形的高度代表样本数量。在Python中,使用matplotlib的hist()函数或seaborn的distplot()函数可以绘制直方图。生成随机数数据后,使用hist()函数绘制直方图。bins参数定义区间数,color...
常见的python画图简单代码
条形图是表示分类数据的常用方式,它将每个类别的值表示为垂直条形。可以根据条形的高度或宽度来比较不同类别的值。matplotlib的bar函数能轻松绘制条形图。折线图用于显示随时间或其他连续变量变化的数值。它们通过连接数据点来显示趋势。matplotlib的plot函数可以绘制折线图。堆积柱形图用于比较不同类别的累计总...
探索Python中的数据可视化利器:Plotly Express
首先,我们需要安装Plotly Express库。可以通过pip命令轻松完成安装:安装后,便可以开始利用Plotly Express进行数据可视化。Plotly Express提供快速绘图功能,能轻松生成各种常见图表。例如,使用鸢尾花数据集(iris)创建一个散点图,通过指定x与y轴数据列并应用color参数分类数据,生成带有不同颜色分类的散点图...
python里同一个横坐标有三个y轴条形图同一个x轴的y轴条
1、在Python中,可以使用Matplotlib库来实现同一个横坐标有三个y轴条形图同一个x轴的y轴条形图。2、在Python中,使用Matplotlib库的`bar()`函数可以绘制同一个横坐标有多个y轴的条形图,通过设置不同的参数调整条形图的对齐方式和大小,同时使用`set_xticks()`和`set_xticklabels()`设置刻度和标签...
数据可视化 | matplotlib - bar(柱状图)
Matplotlib, 作为一款强大的数据可视化工具,特别擅长于绘制直观的柱状图,适合于学术论文展示和初学者入门。它的bar函数是创建条形图的关键,用于比较各类别间的数据差异。首先,安装matplotlib库是进行可视化的基础。接着,我们可以通过以下Python示例来实现柱状图的绘制:python import matplotlib.pyplot as plt ...
如何使用Python和Plotly绘制3D图形
绘制过程1. 散点图通过三维数据x_data, y_data, z_data,可以创建一个展示数据点分布的散点图。2. 曲面图以函数f(x, y)为例,可以生成该函数在三维空间的表面表示。3. 线框图展示数据连续性的线框图也会被演示。4. 条形图三维条形图用于展示类别间的关系和差异。自定义与互动Plotly支持丰富的...
【Python进阶篇】绘制直方图|Matplotlib|图解+代码实例
接下来,使用plt.style.use()函数设置绘图的风格为白色网格风格。然后,使用plt.hist()函数绘制直方图,传入参数x为要绘制的数据,bins为直方图的个数,facecolor、edgecolor和linewidth分别设置条形的填充颜色、边框颜色和边框宽度。使用n, bins, patches = plt.hist()的返回值可以获取到每个区间的频数、...
条状图如何制作
制作条状图,首先需要准备好数据,并选择合适的图表制作工具或软件,如Excel、Python等,然后按照软件的步骤或代码逻辑进行制作。条状图,也称为条形图,是一种用矩形条来表示数据大小的图表。它非常适合用来比较不同类别之间的数据差异。制作条状图的过程并不复杂,但需要注意一些关键步骤和细节。数据准备是...
python画图显示bar的left
python画图显示bar的left可以通过设置`xticks`参数来实现。具体步骤如下:1、导入Matplotlib库中的`pyplot`模块,并准备好数据和参数。```pythonimportmatplotlib.pyplotaspltleft=[0,1,2,3,4]height=[5,4,3,2,1]width=0.8```2、使用`bar()`函数绘制条形图,并将`xticks`参数设置为`left`列表...