matplotlib_bar

本文主要介绍用matplotib来制作一个柱状图


Demo.py

import matplotlib.pyplot as plt
import numpy as np
#柱状图分成上下两部分,每一个柱体上都有相应的数值标注,并且取消坐标轴的显示。
#向上向下分别生成12个数据,X为 0 到 11 的整数 ,Y是相应的均匀分布的随机数据。 
#使用的函数是plt.bar,参数为X和Y:
n = 12
X = np.arange(n)
Y1 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)
Y2 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)

plt.bar(X, +Y1)
plt.bar(X, -Y2)

plt.xlim(-.5, n)
plt.xticks(())
plt.ylim(-1.25, 1.25)
plt.yticks(())

plt.show()

#下面我们就颜色和数值进行优化。 用facecolor设置主体颜色,edgecolor设置边框颜色为白色
plt.bar(X, +Y1, facecolor='#9999ff', edgecolor='white')
plt.bar(X, -Y2, facecolor='#ff9999', edgecolor='white')
#接下来我们用函数plt.text分别在柱体上方(下方)加上数值,用%.2f保留两位小数,
#横向居中对齐ha='center',纵向底部(顶部)对齐va='bottom'
for x, y in zip(X, Y1):
    # ha: horizontal alignment
    # va: vertical alignment
    plt.text(x + 0.4, y + 0.05, '%.2f' % y, ha='center', va='bottom')

for x, y in zip(X, Y2):
    # ha: horizontal alignment
    # va: vertical alignment
    plt.text(x + 0.4, -y - 0.05, '%.2f' % y, ha='center', va='top')

结果:

Paste_Image.png
Paste_Image.png
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,791评论 25 709
  • 国庆假期里,我们全家一起回农村老家,看望爷爷奶奶。 来到爸爸妈妈为爷爷奶奶盖的小院,看到院子里种着蔬菜和果树,虽是...
    彪悍另一只猫阅读 4,955评论 20 23
  • 再过几天,就迎来了我们结婚8周年纪念日。不知不觉,我们已经在婚姻的长河里走过8年。 在我们国家把结婚8年叫“古铜婚...
    梦马映象阅读 4,318评论 4 14