matplotlib 条形图,matplotlib横向条形图

  matplotlib 条形图,matplotlib横向条形图

  这篇文章主要为大家详细介绍了Pythonmatplotlib实现条形统计图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  Python-matplotlib实现条形统计图,供大家参考,具体内容如下

  效果图展示如下:

  该代码可以处理多个实验多组观测值的展示,代码如下:

  将matplotlib.pyplot作为血小板计数导入

  将数组作为铭牌导入

  从matplotlib.pyplot导入多重定位器

  def plot_bar(experiment_name,bar_name,bar_value,error_value=None,):

  Args:

  实验名称: x标签

  bar_name:图例名称

  bar _ value :列表(len(experiment _ name),每个元素包含一个np.array(),

  其中包含每组中的条形值

  error _ value :列表(len(experiment _ name),每个元素包含一个np.array(),

  其包含每组中的误差值

  返回:

  # 用于正常显示中文标签

  # PLT。RC params[ font。sans-serif ]=[ sim hei ]

  colors=[lightsteelblue , cornflowerblue , royalblue , blue , mediumblue , darkblue , navy , midnightblue ,

  薰衣草,]

  assert len(bar _ value[0])=len(colors)#如果不是,则尝试将颜色添加到"颜色"中

  PLT。RC params[轴。unicode _ MINUS ]=False

  plt.style.use(seaborn )

  font={weight: normal , size: 20,}

  font _ title={ weight : normal , size: 28,}

  #条形宽度

  宽度=0.2

  #组数据

  x _ bar=NP。arange(len(experiment _ name))

  #创建图形

  plt.figure(figsize=(10,9))

  ax=plt.subplot(111) #假如设置为221,则表示创建两行两列也就是四个子画板,斧头为第一个子画板

  #绘图栏

  bar_groups=[]

  值=[]

  对于范围内的I(len(bar _ value[0])):

  对于范围内的j(len(实验名称)):

  值.追加(条形值[j][i])

  group=ax。bar(x _ bar-(len(experiment _ name)-3-I)* width,copy.deepcopy(value),width=width,color=colors[i],label=bar_name[i])

  bar_groups.append(group)

  value.clear()

  #增加每个条形的高度

  i=j=0

  对于bar _ groups:中的条形

  j=0

  对于bars:中的矩形

  x=rect.get_x()

  height=rect.get_height()

  # ax.text(x 0.1,1.02 * height,str(height),fontdict=font)

  #误差线

  如果错误值为:

  ax.errorbar(x width/2,height,yerr=error_value[j][i],fmt=-,ecolor=black ,

  线宽度=1.2,倾覆=2,

  capthick=1.2)

  j=1

  i=1

  # 设置刻度字体大小

  plt.xticks(fontsize=15)

  plt.yticks(fontsize=18)

  # 设置x轴的刻度

  ax.set_xticks(x_bar)

  斧头。set _ xticklabels(experiment _ name,fontdict=font)

  # 设置英语字母表的第25个字母轴的刻标注

  ax.set_ylabel(剧集成本,fontdict=font_title)

  ax.set_xlabel(Experiment ,fontdict=font_title)

  # 是否显示网格

  ax.grid(False)

  # 拉伸英语字母表的第25个字母轴

  ax.set_ylim(0,7.5)

  # 把轴的刻度间隔设置为1,并存在变量里

  y _ major _ locator=多重定位器(2.5)

  斧头。雅克斯。设置_专业_定位器(y _专业_定位器)

  # 设置标题

  plt.suptitle(成本比较,fontsize=30,horizontalalignment=center )

  plt.subplots_adjust(左=0.11,下=0.1,右=0.95,上=0.93,wspace=0.1,hspace=0.2)

  # 设置边框线宽为2.0

  ax.spines[bottom].set_linewidth(2.0 )

  # 添加图例

  ax.legend(loc=upper left ,frameon=True,fontsize=19.5)

  # plt.savefig(test.png )

  plt.show()

  plt。图例()

  if __name__==__main__:

  测试实验名称=[测试1 ,测试2 ,测试3 ,测试4]

  test_bar_name=[A , B , C]

  test_bar_value=[

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

  np.array([4,5,6]),

  np.array([3,2,4]),

  np.array([5,2,2])

  ]

  测试错误值=[

  np.array([1,1,2]),

  np.array([0.2,0.6,1]),

  np.array([0,0,0]),

  np.array([0.5,0.2,0.2])

  ]

  绘图栏(测试实验名称,测试栏名称,测试栏值,测试错误值)

  这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: