文章目录
一、matplotlib
1、柱状图
x轴数据量少
柱子宽度一致,没什么意义,一般只关注其高度
import numpy as np
import matplotlib.pyplot as plt
# 修改rc参数,支持中文
plt.rcParams["font.sans-serif"] = "SimHei"
# 修改rc参数,支持负号
plt.rcParams['axes.unicode_minus'] = False
data = np.load("../day6/国民经济核算季度数据.npz", allow_pickle=True)
for tmp in data:
print(tmp)
columns = data["columns"].tolist() # 转换为列表
info = data["values"]
print(info)
print(columns)
# 2017年第一季度 农林牧渔业、工业....房地产业、其他行业
# 柱状图
ind = columns.index('农林牧渔业增加值_当季值(亿元)')
x_data = columns[ind:]
print('-' * 70)
x_data = [tmp[: tmp.index("业") + 1] for tmp in x_data]
print(x_data)
# y轴数据
y_data = info[0, ind:]
print(y_data)
# 创建画布
plt.figure()
# 柱状图的绘制
plt.bar(x_data, y_data, width=0.5)
plt.xticks(rotation=45)
plt.title("2017年第一季度其他产业生产总值")
plt.xlabel("各个产业")
plt.ylabel("总值")
plt.show()
2、直方图
查看数据分布,查看落在各个区间的数据量有多少
柱子高度:落在该区间的数据量
柱子宽度:由区间宽度决定,代表区间的范围,有意义
"""
直方图
给定一堆数据
给定一个区间(划分为子区间)
统计数据落在各个子区间的数据量
"""
import numpy as np
import matplotlib.pyplot as plt
# 学生身高直方图----- 学生普遍身高在什么范围
# 1、确定一堆数据
# 指定范围随机小数
data = np.random.uniform(low=140, high=190, size=50)
data = [float("%.2f" % tmp) for tmp in data]
print("身高数据\n", data)
# 2、确定区间信息
# a、区间数目,group=5
# b、自定义区间 (140 155) (155 160) 不需要
# (140, 155, 160, 170, 180, 190)
# 前闭后开 [140, 155) [155,160)...[180,190]
# 绘制 hist
# 参数:数据、区间信息
# plt.hist(data, bins=5, facecolor='b', edgecolor='r')
# plt.hist(data, facecolor='b', edgecolor='r')
# 自定义区间
bin = [140, 155, 160, 170, 180, 190]
plt.hist(data, bins=bin, facecolor='b', edgecolor='r')
# 增加网络线
# 参数b 是否显示 网格线
# axis='y' 垂直于Y轴的网格线
plt.grid(b=