matplotlib模块(绘图模块)使用——005_bar柱状图

此博客介绍使用bar生成柱状图。其中对每个柱状图添加标注时出现问题,在网上找到了答案,会在文中介绍。
代码如下:

import matplotlib.pyplot as plt
import numpy as np

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))     #正态分布生成随机数  范围:0.5-1.0  个数:n
plt.bar(x,y1,facecolor='#9999ff',edgecolor='white')   #facecolor为颜色,edgecolor为背景色
plt.bar(x,y2,facecolor='#ff9999',edgecolor='white')   #生成条状图

Y1=zip(x,y1)
Y2=zip(x,y2)                 #需要提前将x列表的值压缩好
for x,y in Y1:
    plt.text(x,y+0.05,'%.2f'% y,ha='center',va='bottom')           #ha为对其方式  va也是对其方式
for x,y in Y2:
     plt.text(x,y-0.1,'%.2f'% y,ha='center',va='bottom')           #ha为对其方式  va也是对其方式

plt.xlim(-5,n)
plt.xticks(())         #不显示ticks
plt.ylim(-1.25,1.25)
plt.yticks(())
plt.show()

效果图如下:
在这里插入图片描述
使用text循环添加注释时,使用下面的代码会出现错误:

for x,y in zip(x,y1):
    plt.text(x+0.4, y+0.05, '%.2f'%y, ha='center', va='bottom')
for x, y in zip(x,y2):
    plt.text(x+0.4, -y-0.05, '%.2f'%y, ha='center', va='top')

出现的错误提示如下:
TypeError: zip argument #1 must support iteration

解释:当第一个for循环结完成后,x列表会被x列表的最后一个值所代替。所以进入下一个循环时提示说x对应的数据类型不对,不支持迭代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值