美文网首页
Python可视化应用――绘制纵向和横向条形图

Python可视化应用――绘制纵向和横向条形图

作者: 方程不等式 | 来源:发表于2018-09-06 21:12 被阅读0次

    哎呀,这个是最简单的,我就直接贴代码了。

    import matplotlib

    matplotlib.use('Agg')

    import sys

    import matplotlib.pyplot as plt

    #set the verhical bar

    def Vbar():

          plt.cla()

          rect=plt.bar(left=range(len(ave)),height=ave,align="center")

          plt.ylabel(u'Performance')

          plt.xlabel(u'Environment')

          plt.xticks(range(len(get_envnum())),get_envnum(),FontSize=6)

          plt.legend((rect,),(u'Requests per second',))

          x = np.arange(len(get_envnum()))

          for i in range(len(get_envnum())):

              z = [x[i],x[i]]

              w = [ave[i]-std[i],ave[i]+std[i]]

              plt.plot(z,w,color='red')

          for x,y in enumerate(ave):

              plt.text(x,y+100,'%s' %round(y,1),ha='center')

          plt.savefig("V.png",format='png')

    #set the horizontal bar

    def Hbar():

          plt.cla()

          rect=plt.barh(bottom=range(len(ave)),width=ave,align="center")

          plt.ylabel(u'Environment')

          plt.xlabel(u'Performance')

          plt.yticks(range(len(get_envnum())),get_envnum(),FontSize=6)

          plt.legend((rect,),(u"Data",))

          y = np.arange(len(get_envnum()))

          for i in range(len(get_envnum())):

              z = [y[i],y[i]]

              w = [ave[i]-std[i],ave[i]+std[i]]

              plt.plot(w,z,color='red')

          for x,y in enumerate(ave):

              plt.text(y+0.1,x,'%s' %round(y,1),va='center')

          plt.savefig("H.png",format='png')

    这里我封装成了两个方法,可以注意到第一条都是plt.cla(),这是用来擦除绘图的,因为如果你先调用Vbar方法,再调用Hbar方法,就会发现,后者的图片会出错。

    这个没有图了,因为不小心给删掉了

    相关文章

      网友评论

          本文标题:Python可视化应用――绘制纵向和横向条形图

          本文链接:https://www.haomeiwen.com/subject/ycjfgftx.html