集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Python >

成都Python培训:如何用Python做出柱形图?

发布者: 成都达内     浏览次数:     发布时间:2020-07-29 10:42:02

成都Python培训:如何用Python做出柱形图?1垂直柱图(普通柱图),#绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。...

  1垂直柱图(普通柱图)

  成都Python培训:如何用Python做出柱形图?

  绘制普通柱图的python代码如下:

  1# -*- coding:utf-8 -*-

  2# 申明编码格式为utf-8

  3

  4import matplotlib as mpl

  5import matplotlib.pyplot as plt

  6

  7mpl.rcParams["font.sans-serif"]=["SimHei"]

  8#指定字体为SimHei,用于显示中文,如果Ariel,中文会乱码

  9mpl.rcParams["axes.unicode_minus"]=False

  10#用来正常显示负号

  11

  12

  13

  14x = [1,2,3,4,5,6,7,8]

  15y = [30,11,42,53,81,98,72,25]

  #数据

  abels=["A","B","C","D","E","F","G","H"]

  #定义柱子的标签

  plt.bar(x,y,align="center",color="rgb",tick_label=labels,hatch=" ",ec='gray')

  #绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。

  #bar柱图函数还有以下参数:

  #颜色:color,可以取具体颜色如red(简写为r),也可以用rgb让每条柱子采用不同颜色。

  #描边:edgecolor(ec):边缘颜色;linestyle(ls):边缘样式;linewidth(lw):边缘粗细

  #填充:hatch,取值:/,|,-,+,x,o,O,.,*

  #位置标志:tick_label

  plt.xlabel(u"样品编号")

  plt.ylabel(u"库伦效率/%")

  plt.show()

  2 水平柱图

  将上述代码稍微调整几行代码即可绘制出水平柱图。

  (1)第19行“plt.bar”加一个字母h,即“plt.barh”

  (2)第28和29行两行的“plt.xlabel”和“plt.ylable”中的x和y互换一下。

  得到绘图效果如下:

  成都Python培训:如何用Python做出柱形图?

  3堆积柱图

  将第1点中代码第14~21行代码调整如下:

  x = [1,2,3,4,5,6,7,8]

  y = [30,11,42,53,81,98,72,25]

  y1= [45,23,44,67,88,89,65,75]

  #数据

  labels=["A","B","C","D","E","F","G","H"]

  #定义柱子的标签

  plt.bar(x,y,align="center",color="b",tick_label=labels,hatch=" ",ec='gray')

  #绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。

  plt.bar(x,y1,align="center",color="g",tick_label=labels,hatch=" ",ec='gray',bottom=y)

  绘制出垂直堆积图效果如下:

  成都Python培训:如何用Python做出柱形图?

  上述第22行是绘制y1第二组柱图,与第一组y柱图绘制的plt.bar()函数中不同的是,y1柱图的绘制参数中多了一个bottom=y,即柱图的底部设置为第一组y值,这样可以将y1堆积在y上。至于水平堆积柱图的python代码与上述类似。

  4并列柱图

  并列柱图,特别是带误差棒的柱图,是我们最常用的柱状图。

  成都Python培训:如何用Python做出柱形图?

  完整代码如下:

  # -*- coding:utf-8 -*-

  # 申明编码格式为utf-8

  import matplotlib as mpl

  import matplotlib.pyplot as plt

  import numpy as np

  mpl.rcParams["font.sans-serif"]=["SimHei"]

  #指定字体为SimHei,用于显示中文,如果Ariel,中文会乱码

  mpl.rcParams["axes.unicode_minus"]=False

  #用来正常显示负号

  x = np.arange(8) #产生1~8的序列

  #注意:这里使用numpy库,需要在程序开始时导包“import numpy as np”

  y = [10,11,22,33,41,58,62,75]

  std_err=[2,4,5,6,8,9,8,6] #误差棒

  y1= [15,23,44,67,88,99,95,85]

  std_err1=[1,2,1,2,1,2,3,2] #误差棒

  #数据

  error_attri = dict(elinewidth=1,ecolor="r",capsize=3)

  #定义误差棒属性的字典数据。这三个参数分别定义误差棒的线宽、颜色、帽子大小

  tick_label=["A","B","C","D","E","F","G","H"]

  #定义柱子的标签

  bar_width=0.35

  #定义柱宽

  plt.bar(x,y,bar_width,color="lightgreen",align="center",label="掺杂前",yerr=std_err,error_kw=error_attri)

  #绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。

  32plt.xticks(x+bar_width/2,tick_label)

  33

  34plt.xlabel("样品编号")

  35plt.ylabel("降解率/%")

  36plt.legend()

  37plt.show()

  5堆积误差棒柱图

  前面第4点中修改第28~32行如下:

  28plt.bar(x,y,color="g",align="center",label="掺杂前",yerr=std_err,error_kw=error_attri)

  29#绘制纵向柱状图,hatch定义柱图的斜纹填充,省略该参数表示默认不填充。

  30plt.bar(x,y1,bottom=y,color="y",align="center",label="掺杂后",yerr=std_err1,error_kw=error_attri)

  plt.xticks(x,tick_label)

  即可绘制出堆积误差柱图,效果如下:

  成都Python培训:如何用Python做出柱形图?

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56