【莫烦Python】Matplotlib Python 画图教程 Bar柱状图

  • Post author:
  • Post category:python


import matplotlib.pyplot as plt
import numpy as np

n = 12#规定有12个柱状图
X = np.arange(n)#生成0-11的数字
Y1 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)#均匀分布,对Y均匀分布
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()

Python3.8中自动区分颜色

import matplotlib.pyplot as plt
import numpy as np

n = 12#规定有12个柱状图
X = np.arange(n)#生成0-11的数字
Y1 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)#均匀分布,对Y均匀分布
Y2 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)

plt.bar(X,+Y1,facecolor='#9999ff', edgecolor='white')#在柱状图中传入参数
plt.bar(X,-Y2,facecolor='#ff9999', edgecolor='white')#可以自己设置柱状颜色和边框颜色

#以上是为了柱状图的效果做个一个例子

for x,y in zip(X,Y1):#zip吧X和Y1的分别传到x和y中
    plt.text(x+0.4,y+0.05,'%.2f'%y,ha='center',va='bottom')
    #x+多少是为了x轴显示没有那么拥挤,y轴一个意思,%2f是保留两位小数,ha横向对齐,va纵向对齐
for x,y in zip(X,Y2):#zip吧X和Y1的分别传到x和y中
    plt.text(x+0.4,-y-0.05,'%.2f'%y,ha='center',va='top')
    #如果不集中的话不要加x的偏移量

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

plt.show()

图片中文字无法对齐,是因为x偏移量的原因

for x,y in zip(X,Y1):#zip吧X和Y1的分别传到x和y中
    plt.text(x,y+0.05,'%.2f'%y,ha='center',va='bottom')
    #x+多少是为了x轴显示没有那么拥挤,y轴一个意思,%2f是保留两位小数,ha横向对齐,va纵向对齐
for x,y in zip(X,Y2):#zip吧X和Y1的分别传到x和y中
    plt.text(x,-y-0.05,'%.2f'%y,ha='center',va='top')
    #如果不集中的话不要加x的偏移量

去掉x轴的偏移量,文字则可以对齐



版权声明:本文为qq_40609376原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。