1.直方图的绘制——hish()绘制
import matplotlib.pyplot as plt
import numpy as np
import math
#### 创建画布
plt.figure(figsize=(20,8))
###创建数据
age = [10,20,30,44,23,32,55,11,8,9,17,19,20,33,30,30,40,44,55,55,21,66,64,61,60,66,73,84,73,83,88]
###指定分组情况-----默认系统自动进行分组
# bins = 6
##### 自定义分组
###找到最大值,最小值相减,得出极差
max = np.max(age)
min = np.min(age)
##极差
ptp = max-min
##指定组距----10为一组
bins = math.ceil(ptp/5)
arr = np.arange(min,(5*bins)+6,5)
print(arr)
###绘图
plt.hist(age,bins=bins,color='g')
plt.title('年龄直方图')
##默认不支持中文,想用中文,必须进行设置RC参数
plt.rcParams['font.sans-serif'] = 'SimHei'
##默认不支持负号,想用负号,进行RC参数设置
plt.rcParams['axes.unicode_minus'] = False
##x轴刻度
plt.xticks(arr)
###保存
plt.savefig('./直方图.png')
##展示
plt.show()
2.箱线图——boxplot()函数绘图
boxplot函数
matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None,
widths=None, patch_artist=None,meanline=None, labels=None, … )
常用参数
参数名称 | 说明 | 参数名称 | 说明 |
x | 接收array。表示用于绘制箱线图的数 据。无默认。 |
positions | 接收array。表示图形位置。默认为 None。 |
notch | 接收boolean。表示中间箱体是否有缺 口。默认为None。 |
widths | 接收scalar或者array。表示每个箱体 的宽度。默认为None。 |
sym | 接收特定sting。指定异常点形状。默 认为None。 |
labels | 接收array。指定每一个箱线图的标 签。默认为None。 |
vert | 接收boolean。表示图形是横向纵向或 者横向。默认为None。 |
meanline | 接收boolean。表示是否显示均值线。 默认为False。 |
import matplotlib.pyplot as plt
import numpy as np
data = np.load('./国民经济核算季度数据.npz')
for tmp in data:
print(tmp)
columns = data["columns"]
values = data["values"]
print(columns)
print(values)
##创建画布
fig = plt.figure(figsize=(10,5))
##默认不支持中文,想用中文,必须进行设置RC参数
plt.rcParams['font.sans-serif'] = 'SimHei'
##默认不支持负号,想用负号,进行RC参数设置
plt.rcParams['axes.unicode_minus'] = False
###第一个子画布
fig.add_subplot(2,1,1)
x = values[:,3:6]
label = ["第一产业", "第二产业", "第三产业"]
##notch----缺口
##meanline----中线
plt.boxplot(x,notch=False,showmeans=True,meanline=True,labels=label)
plt.xlabel('产业')
plt.ylabel('各产业生产总值(亿元)')
plt.title('2000-2017年各产业生产总值箱线图')
##第二个子画布
fig.add_subplot(2,1,2)
x = values[:,6::]
label = ["农林业", "工业", "建筑业", "批发业", "交通业", "餐饮业", "金融业", "房地产业", "其他"]
plt.boxplot(x,notch=False,meanline=True,labels=label)
plt.xlabel('行业')
plt.ylabel('各行业生产总值(亿元)')
plt.title('2000-2017年各行业生产总值箱线图')
plt.show()