条形图细节|学习笔记

简介: 快速学习条形图细节

开发者学堂课程【Python 常用数据科学库条形图细节】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/546/detail/7500


条形图细节

内容介绍

一、画误差棒

二、指定不同的数据指标


一、画误差棒

1、在条形图当中,可以把误差棒再画出来。可以指定这个东西,一个是要画的一个指标,画三个指标123,然后还可以指定误差的范围 variance—— 0.2, 0.4, 0.5,最后再把 bar_label 写出来,bar_label 就是一会指定的第一个注,第二、三个柱,分别叫 bar1,bar2,bar3,然后就画这个图,画这个图的时候可以指定间隔或者叫做底下的位置,可以指定成 position,它是等于 list 结构,然后 range 一下,bar_label 有几个就需要几个 position,把 bar_label 传进去这可以了,这个就是位置,然后把图实际画出来,把位置 position 传进去,再把 mean_value 传进去,把误差棒表示成variance。把位置写完了之后,还得去设置它的高度,因为一会要进行一个限制,所以先把高度拿过来,设置它最大的高度,用 max_y 设置高度,max 里传进来一个 zip值,然后把 mean_value 和 variance 这两个指标传进来,传进来之后,这个就是做了一个 max_y。然后要去做它的限制,plt  拿过来,然后在 y 轴做一个限制 limit,写一个范围从零开始,然后最大到这样的一个范围:max 里传进来 max_y,有两个指标一个是 mean_value,一个 variance,mean_value 相当于它的一个指标,variance 相当于它可以浮动的一个范围,最大的就是它俩加在一起,如果不想顶格写,可以乘个1.2,给它上面稍微留一些空白区域,这是限制了一个区域,接下来再写上 y label, y 轴叫 variable y,然后再指定它的 x 轴,里面写上 x 的 position 位置,位置上就给它写上 bar1,bar2,bar3 就可以了,这是 x 的一个 ticks

mean_values=[1,2,3]

variance =[0,2,0.4,0.5]

bar_label=[ bar1,bar2,bar3]

x_pos= list(range(len(bar_label)))

max_y=max(zip (mean values, variance))

plt.ylim([0, (max_y[0] +max_y[1])*1.2])

plt.ylabel(‘variable y’)

plt.xticks(x_pos, bar_labe)

然后直接执行一下, 这样图就出来了

image.png

出来之后看着不太好看,因为这两个都是蓝色的,可以给它稍微设计一下,看一下当前的 variance,在这里指定一下透明程度,指定成0.3再来看一下,这样这个图可以显示出来了

image.png

上面画的小柱一个误差棒,整个图是一个条形图,这个就是整体结构是长什么样子的,然后横着画竖着画都是一样的。


二、指定不同的数据指标

1、在画 ba r的时候,也可以再去给它指定不同的数据指标。指定一个 x1, x1它等于 np.array,随便传进来一些数123,这是 x1,然后还有个 x2,x2 等于 np.array 里面再随便传进来一些数233,这是 x2。再指定 bar_labels,现在是有三个数bar1,bar2,bar3,这是 labels。然后把这个图指定出来,figure 里传进来 figsize,一般等于8,6就足够了,先把这些东西基本写完,然后构造一个 y_pos,之所以是 y 不是x,是因为一会要横着去画,y_pos 等于 np.arange,一共三个数据,直接指定3就可以了,然

然后再写一下 y_pos,这是先把位置写好,然后再去画这个图,plt.bar 一下,把这个图画出来,需要把 y_pos 传进去,再传 x1,传进来之后,再指定个颜色,透明程度等于0.5,然后看 show 一下

x1= np.array([1,2,3])

x2 = np.array([2,2,3])

bar_labels=['bat1',’bar2’,'bar3']

fig = plt.figure(figsize=(8,6))

y_pos = np.arange(len(x1))

y_pos=[x for x in y_pos]

plt.barh(y_pos,x1,color='g',alpha=0.5)

plt.show()

执行图片就显示出来了

image.png

2、再画一个,把 x2传进来,画一个负的 x2让它俩是一个背靠背的形式

x1= np.array([1,2,3])

x2 = np.array([2,2,3])

bar_labels=['batl',’bar2",'bar3']

fig = plt.figure(figsize=(8,6))

y_pos = np.arange(len(x1))

y_pos=[x for x in y_pos]

plt.barh(y_pos,x1,color='g',alpha=0.5)

plt.barh(y_pos,-x2,color='g',alpha=0.5)

plt.show()

再执行一下,这样就画出一个背靠背的形式  

image.png

这是顶格了,设置不顶格,需要做一个限制, plt 点 x limit,限制它的取值范围,限制负的 max,左边就是负的 x2,减1留出一个单元格,右边是 max  x1,再加个一,留出来一个位置,这样就行了

x1= np.array([1,2,3])

x2 = np.array([2,2,3])

bar_labels=['batl',’bar2",'bar3']

fig = plt.figure(figsize=(8,6))

y_pos = np.arange(len(x1))

y_pos=[x for x in y_pos]

plt.barh(y_pos,x1,color='g',alpha=0.5)

plt.barh(y_pos,-x2,color='g',alpha=0.5)

plt.xlim(-max(x2)-1,max(x1)+1)

plt.show()

执行这个图就好看一些  

image.png

别让它顶格,这个 y 轴也是一样别顶格了,再把 y 轴设置一下,plt 点 y limit,最小的从负一开始,最大的 len 值加一

x1= np.array([1,2,3])

x2 = np.array([2,2,3])

bar_labels=['batl',’bar2",'bar3']

fig = plt.figure(figsize=(8,6))

y_pos = np.arange(len(x1))

y_pos=[x for x in y_pos]

plt.barh(y_pos,x1,color='g',alpha=0.5)

plt.barh(y_pos,-x2,color='g',alpha=0.5)

plt.xlim(-max(x2)-1,max(x1)+1)

plt.ylim(-1,len(x1)+1)

plt.show()

看一下,这样就是画了一个还算标准的图

image.png

就是说画一个也可以,画两个也可以,让它组成这种背靠背的形式也行,有时候真的会遇到这种背靠背形式,看起来可能会直观一些。

3、下面要把好几种方式都画在一起,这个时候还是直接把数据拿过来,这就是当前的数据,数据当中,写了一个绿色的、蓝色的、红色的,所以说现在有三组数据,两组数据可以按照背靠背的形式,就是一正一负去分析,但三组数据它又不是一个正负的,还想按照 group1里分辨一下132的情况,group2 里分辨一下223的情况,前面的操作都是一样的,可以直接把前面操作拿过来,然后再指定一个 figsize 就完成了。然后接下来就是去画这个图,在画这个图的时候要画三种不同颜色, plt 点 bar一下,bar 里传进来的位置不是一样的,先画绿色的,画完了之后,再看线条的宽度,可以给它指定成固定的0.2,alpha 值是0.5,然后指定 color 等于g,label 指定它当前是属于哪个东西的, labels 里标注了一下它是 group1的,所以说得告诉它等于 group 几,这是画了第一个,之后画第二个第三个,第二个就是在第一个基础之上,第一个柱的宽度0.2,第二个柱再加上一个0.2,这就可以了,下面这个就是变成两个间隔乘一个二,有3个柱每个柱都要考虑到,要写成 list 结构,然后再指定一个颜色,第二个是蓝色的,第三个是红色的,再标一个 label1和 label2

green_data =[1, 2, 3]

blue_data =[3, 2, 1]

red_data = [2, 3, 3]

labels=['group1','group2', 'group 3']

pos= list(range(len(green_data)))

width = 0.2

fig, ax = plt.subplots(figsize=(8.6))

plt.bar(pos,green_data,width,alpha=0.5,color='g',label=label[0])

plt.bar([p+width for p in pos],green_data,width,alpha=0.5,color='b',label=labels[1])plt.bar(p+width2forpinpos],green_data,widthalpha=0.5,color='r',label=labels[2])

这样就画完了,执行一下  

image.png

group1 里有三个柱,group1 里也有三个柱,group3 里也是有三个柱,这三个指标分别用不同的颜色来表示,就是说画这样一个图,当中有三个 group,每个 group 都有不同的指标值,把这个指标值再放出来,这就是当前完成的一个结果。

相关文章
|
5月前
|
数据可视化 数据挖掘 图形学
seaborn从入门到精通03-绘图功能实现01-关系绘图
seaborn从入门到精通03-绘图功能实现01-关系绘图
|
4天前
|
JSON JavaScript Linux
绘图框架 plotly 知识点补充(绘制子图,图表保存)
绘图框架 plotly 知识点补充(绘制子图,图表保存)
28 13
|
5月前
|
数据可视化 数据挖掘
Seaborn中的分类图:直观展示分类数据的差异
【4月更文挑战第17天】Seaborn是数据分析中的利器,尤其在展示分类数据差异方面。本文介绍了5种主要图表类型:1) 使用`barplot`创建条形图,便于比较不同分类的数值差异;2) `boxplot`生成箱线图,展示数据分布和离散程度;3) `stripplot`和`swarmplot`显示单个观测值分布,理解分类内变异性和差异;4) `scatterplot`结合`hue`参数,呈现分类在连续变量关系中的差异;5) 自定义分类图,调整样式以满足特定需求。通过这些图表,可以更深入地分析和传达分类数据的特性。
|
5月前
如何用R语言绘制生成正态分布图表
如何用R语言绘制生成正态分布图表
|
5月前
|
数据可视化 数据挖掘 Linux
seaborn从入门到精通03-绘图功能实现03-分布绘图distributional plots
seaborn从入门到精通03-绘图功能实现03-分布绘图distributional plots
seaborn从入门到精通03-绘图功能实现03-分布绘图distributional plots
|
5月前
|
数据可视化 API 前端开发
seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots
seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots
seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots
|
数据可视化 数据挖掘 Linux
科研绘图丨使用R语言Pheatmap包快速绘制基因表达量热图的方法,支持聚类和配色自定义修改
科研绘图丨使用R语言Pheatmap包快速绘制基因表达量热图的方法,支持聚类和配色自定义修改
|
数据处理 图形学
ggplot 分面的细节调整汇总
ggplot 分面的细节调整汇总
217 0
|
数据采集 数据可视化 数据挖掘
还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
本文讲解9种『炫酷高级』的数据图表,可视化地表示比例或百分比:哑铃图、甜甜圈图、华夫饼图、堆积条形图...附上代码,快快用起来吧!
837 2
还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
如何用两种不同的方法动态绘制饼状图
如何用两种不同的方法动态绘制饼状图
191 0
如何用两种不同的方法动态绘制饼状图