zoukankan      html  css  js  c++  java
  • 【数据分析&数据挖掘】2000-2017年各个产业、行业的散点图

      1 import matplotlib.pyplot as plt
      2 import numpy as np
      3 
      4 
      5 def show_data(columns, values):
      6     """
      7     绘图展示
      8     :param columns: 名称
      9     :param values: 真实数据
     10     :return: None
     11     """
     12     # 1、创建画布
     13     fig = plt.figure(figsize=(20, 12), dpi=120)
     14     # 增加RC 参数
     15     # 默认不支持中文
     16     # 修改RC参数,来让其支持中文
     17     plt.rcParams['font.sans-serif'] = 'SimHei'
     18     plt.rcParams['axes.unicode_minus'] = False
     19 
     20     # 调整子图的间隔
     21     # wspace=None,  来调整 子图之间左右的宽度
     22     # hspace=None # 来调整 子图之间上下的宽度
     23     plt.subplots_adjust(hspace=0.3)
     24     # 2、绘图
     25     # 创建子图
     26     fig.add_subplot(2, 1, 1)
     27     # 关于 各个季度产业散点图
     28     x = values[:, 0]
     29     y1 = values[:, 3]
     30     y2 = values[:, 4]
     31     y3 = values[:, 5]
     32     plt.scatter(x, y1)
     33     plt.scatter(x, y2)
     34     plt.scatter(x, y3)
     35 
     36     # 增加标题
     37     plt.title("2000-2017年各个产业、行业的散点图")
     38     # 增加纵轴名称
     39     plt.ylabel("生产总值(亿元)")
     40     legend = [tmp[:4] for tmp in columns[3:6]]
     41     # 增加图例
     42     plt.legend(legend)
     43 
     44     # 增加横轴名称
     45     plt.xlabel("季度")
     46 
     47     # 设置横轴刻度
     48     xticks = values[:, 1]
     49     plt.xticks(x[::4], xticks[::4], rotation=45)
     50 
     51     fig.add_subplot(2, 1, 2)
     52     # 关于 各个季度行业散点图
     53     y1 = values[:, 6]
     54     y2 = values[:, 7]
     55     y3 = values[:, 8]
     56     y4 = values[:, 9]
     57     y5 = values[:, 10]
     58     y6 = values[:, 11]
     59     y7 = values[:, 12]
     60     y8 = values[:, 13]
     61     y9 = values[:, 14]
     62 
     63     plt.scatter(x, y1)
     64     plt.scatter(x, y2)
     65     plt.scatter(x, y3)
     66     plt.scatter(x, y4)
     67     plt.scatter(x, y5)
     68     plt.scatter(x, y6)
     69     plt.scatter(x, y7)
     70     plt.scatter(x, y8)
     71     plt.scatter(x, y9)
     72 
     73     # 增加纵轴名称
     74     plt.ylabel("生产总值(亿元)")
     75     # 增加图例
     76     legend = [tmp[:2] for tmp in columns[6:]]
     77     plt.legend(legend, loc=2)
     78 
     79     # 设置横轴刻度
     80     xticks = values[:, 1]
     81     plt.xticks(x[::4], xticks[::4], rotation=45)
     82 
     83     # 增加横轴名称
     84     plt.xlabel("季度")
     85 
     86     # 保存图片
     87     plt.savefig("./2000-2017年各个产业、行业的散点图.png")
     88 
     89     # 3、图形展示
     90     plt.show()
     91 
     92 
     93 def build_data():
     94     """
     95     构建数据
     96     :return:数据
     97     """
     98     # 加载数据
     99     res = np.load("./国民经济核算季度数据.npz", allow_pickle=True)
    100     # for tmp in res:
    101     #     print(tmp)
    102     columns = res["columns"]
    103     values = res["values"]
    104 
    105     # print("columns:
    ", columns)
    106     # print("values:
    ", values)
    107     return columns, values
    108 
    109 
    110 def main():
    111     """
    112     主函数
    113     :return:None
    114     """
    115     # 1、加载数据
    116     columns, values = build_data()
    117 
    118     # 2、绘制图形
    119     show_data(columns, values)
    120 
    121 
    122 if __name__ == '__main__':
    123     main()
    124 
    125 # 场景一:类似于折线走势的这种散点图 也可以用来描述走势
    126 # 场景二:可以用来描述 点与点(数据与数据)的关系

  • 相关阅读:
    pycharm中以pytest的方式运行测试用例
    jmeter 固定吞吐量控制器 Constant Throughput Timer
    jmeter 循环控制器使用
    jmeter 24个常用函数
    jmeter 参数化取唯一值
    jmeter之json提取器
    【转】Jmeter如何把响应数据的结果保存到本地的一个文件
    jmeter测试并发
    jmeter参数为Excel表格
    jmeter接口调用
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12115976.html
Copyright © 2011-2022 走看看