欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matplotlib之绘制柱状图,直方图,饼图

程序员文章站 2022-03-21 19:49:54
...
import matplotlib.pyplot as plt
import numpy as np

data = np.load("国民经济核算季度数据.npz")
values = data['values']
columns = data['columns']

plt.rcParams['font.sans-serif'] = 'SimHei'  #仿宋
plt.rcParams['axes.unicode_minus'] = False  #正常显示正负数

#绘制柱状图
def zhifangtu:
    #2017年第一季度,三个产业对比柱状图
    x = np.array([3,5,7])  自定义
    y = values[-1,3:6]  从数据库中取值
    
    plt.bar(x,y,width = 1, color = ['r', 'pink', 'hotpink'])
    labels = ['第一产业', ‘第二产业’, ‘第三产业’]
    plt.xticks(x,labels)
    
    for x,y in zip(x,y):
    	plt.text(x,y + 1000, y, ha = 'center', fontsize = 12)
    
    plt.title('2017年第一季度各个产业增加值柱状图')
    
    plt.show()

#绘制直方图
def zhifangtu():

	salary = [2500,3300,2700,5600,6700,5400,3100,3500,7600,7800,8700,9800,10400]
	group = [1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000]
	
	#直方图
	plt.hist(salary, group)  #第一个参数是实际数据,第二个是区间横坐标
	plt.show()

#正态分布
def zhengtai():
	x = np.random.randn(1000)
	m  = plt.hist(x,10)  #第一个参数是个数,第二个参数是区间
	print(m)
	plt.xlabel('group')
	plt.xlabel('salary_num')
	plt.show()

##饼图
def bing():
	plt.figure(figsize = (6,6))#设置画布大小
	labels = ['第一产业',‘第二产业’, '第三产业']
	explode = [0.01,0.1,0.01] #距离圆心的距离
	plt.pie(values[-1,3:6],explode = explode,labels = labels,autopct = '%.1f%%',colors=['m','b','y'])
	
	plt.show()