【Matplotlib数据分析】-散点图--2000-2017各个产业、行业增加总值

github 仓库,下面npz链接,点击这里
在这里插入图片描述

散点图应用场景
    1、查看数据的发展规律、趋势
    2、可以查看分布规律

【Matplotlib数据分析】-散点图--2000-2017各个产业、行业增加总值_第1张图片

import matplotlib.pyplot as plt
import numpy as np

#################### 加载数据 ################

fp = np.load('./国民经济核算季度数据.npz', allow_pickle=True)
#  获取两个数据表
columns = fp['columns']
values = fp['values']
print('colums:\n', columns)
print('values:\n', values)

################### 绘图 #####################

# 默认不支持中文,需要进行修改,修改完后,不支持符号
plt.rcParams['font.sans-serif'] = 'SimHei'
# 增加字体之后变得不支持符号,需要吸怪RC参数让其他继续支持符号
plt.rcParams['axes.unicode_minus'] = False

# 1、创建画布

# 创建画布对象
fig = plt.figure(figsize=(8, 8))
plt.subplots_adjust(hspace=0.5)
# 2、绘制与修饰

# 创建图形 1
fig.add_subplot(2, 1, 1)

# 横轴--时间单位 先用序号替换,因为为中文
x = np.arange(values.shape[0])

# 纵轴-- 生产总值(亿元)
y1 = values[:, 3]  # 第一产业
y2 = values[:, 4]  # 第二产业
y3 = values[:, 5]  # 第三产业
plt.ylabel('生产总值(亿元)')

# 修改x轴,将序号替换成 时间
xticks = values[:, 1]
plt.xticks(x[::4], xticks[::4], rotation=45)

# 绘制图像
plt.scatter(x, y1, c='r', s=5)
plt.scatter(x, y2, c='b', s=5, marker='d')
plt.scatter(x, y3, c='y', s=5, marker='v')

# 标题
plt.title('2000-2017年各行产业增值离散图')

# 图例
lengend = [tmp[:4] for tmp in columns[3:6]]
plt.legend(lengend, fontsize=8)

# 创建图形 2
fig.add_subplot(2, 1, 2)

# 创建x轴 以行的索引,并且以时间中文替换
x = np.arange(values.shape[0])
xticks = values[:, 1]
plt.xticks(x[::4], xticks[::4], rotation=45)

# 创建y轴
y1 = values[:, 6]  # 农业
y2 = values[:, 7]  # 工业
y3 = values[:, 8]  # 建造
y4 = values[:, 9]  # 批发
y5 = values[:, 10]  # 交通
y6 = values[:, 11]  # 住宿
y7 = values[:, 12]  # 金融
y8 = values[:, 13]  # 房地
y9 = values[:, 14]  # 其它
# 绘制图形
plt.scatter(x, y1, c='r', s=5, marker='o')
plt.scatter(x, y2, c='b', s=5, marker='d')
plt.scatter(x, y3, c='y', s=5, marker='v')
plt.scatter(x, y4, c='c', s=5, marker='8')
plt.scatter(x, y5, c='k', s=5, marker='p')
plt.scatter(x, y6, c='m', s=5, marker='h')
plt.scatter(x, y7, c='r', s=5, marker='>')
plt.scatter(x, y8, c='g', s=5, marker='<')
plt.scatter(x, y9, c='y', s=5, marker='s')

# 图例
# legend = columns[6:]
legend = [tmp[:2] for tmp in columns[6:]]
plt.legend(legend, fontsize=5)

# 3、图形展示
plt.savefig('./各行产业增值离散图.png')
plt.show()
 
 

你可能感兴趣的:(数据分析,python,数据可视化,可视化,数据分析)