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 # 场景二:可以用来描述 点与点(数据与数据)的关系

  • 相关阅读:
    LeetCode 81 Search in Rotated Sorted Array II(循环有序数组中的查找问题)
    LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)
    LeetCode 79 Word Search(单词查找)
    LeetCode 78 Subsets (所有子集)
    LeetCode 77 Combinations(排列组合)
    LeetCode 50 Pow(x, n) (实现幂运算)
    LeetCode 49 Group Anagrams(字符串分组)
    LeetCode 48 Rotate Image(2D图像旋转问题)
    LeetCode 47 Permutations II(全排列)
    LeetCode 46 Permutations(全排列问题)
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12115976.html
Copyright © 2011-2022 走看看