zoukankan      html  css  js  c++  java
  • 【数据分析&数据挖掘】2000-2017年各产业、行业季度生产总值走势图(子图绘制)

      1 import matplotlib.pyplot as plt
      2 import numpy as np
      3 
      4 # 加载数据
      5 res = np.load("./国民经济核算季度数据.npz", allow_pickle=True)
      6 
      7 columns = res["columns"]
      8 values = res["values"]
      9 
     10 print("columns:
    ", columns)
     11 print("values:
    ", values)
     12 
     13 # 绘图三部曲
     14 # 1、创建画布,并返回画布对象
     15 fig = plt.figure(figsize=(20,10),dpi=120)
     16 # 增加RC参数
     17 # 默认不支持中文
     18 # 修改RC参数,来让其支持中文
     19 plt.rcParams['font.sans-serif'] = 'SimHei'
     20 plt.rcParams['axes.unicode_minus'] = False
     21 
     22 # 给画布里面添加 多个坐标系
     23 # 参数1  子图的行数
     24 # 参数2  子图的列数
     25 # 参数3  第几个子图
     26 fig.add_subplot(2, 1, 1)
     27 
     28 # 2、绘图
     29 # 横轴---时间(直接绘制的时候,不允许使用中文)---先用序号来代替时间
     30 # 纵轴----生产总值
     31 
     32 # 自己生成
     33 x = np.arange(1, values.shape[0] + 1)
     34 print("x:
    ", x)
     35 
     36 y1 = values[:, 3]
     37 y2 = values[:, 4]
     38 y3 = values[:, 5]
     39 
     40 print("y1:
    ", y1)
     41 print("y2:
    ", y2)
     42 print("y3:
    ", y3)
     43 
     44 # 绘图---自己可以构建各种rc来区别点线
     45 plt.plot(x, y1)
     46 plt.plot(x, y2)
     47 plt.plot(x, y3)
     48 
     49 # 增加标题
     50 plt.title("2000-2017年各产业、行业季度生产总值走势图")
     51 
     52 legend = [tmp[:4] for tmp in columns[3:6]]
     53 # 增加图例
     54 plt.legend(legend, loc=2)
     55 
     56 # # 增加横轴名称
     57 # plt.xlabel("季度")
     58 
     59 # 增加纵轴名称
     60 plt.ylabel("生产总值(亿元)")
     61 
     62 
     63 
     64 # 第二个子图
     65 fig.add_subplot(2, 1, 2)
     66 x = values[:, 0]
     67 y1 = values[:, 6]
     68 y2 = values[:, 7]
     69 y3 = values[:, 8]
     70 y4 = values[:, 9]
     71 y5 = values[:, 10]
     72 y6 = values[:, 11]
     73 y7 = values[:, 12]
     74 y8 = values[:, 13]
     75 y9 = values[:, 14]
     76 
     77 # 绘制 图形
     78 plt.plot(x,y1)
     79 plt.plot(x,y2)
     80 plt.plot(x,y3)
     81 plt.plot(x,y4)
     82 plt.plot(x,y5)
     83 plt.plot(x,y6)
     84 plt.plot(x,y7)
     85 plt.plot(x,y8)
     86 plt.plot(x,y9)
     87 
     88 
     89 # 纵轴名称
     90 plt.ylabel("生产总值(亿元)")
     91 # 横轴名称
     92 plt.xlabel("季度")
     93 
     94 # 设置横轴刻度
     95 
     96 xticks = values[:, 1]
     97 # plt.xticks(x, xticks, rotation=75)
     98 plt.xticks(x[::4], xticks[::4], rotation=45, horizontalalignment="center")
     99 
    100 legend = [tmp[:2] for tmp in columns[6:]]
    101 # 增加图例
    102 plt.legend(legend,loc=2)
    103 
    104 # 保存图片
    105 plt.savefig("./2000-2017年各产业、行业季度生产总值走势图.png")
    106 
    107 
    108 # 3、图形展示
    109 plt.show()

  • 相关阅读:
    Java中List集合去除重复数据的六种方法
    常见的Redis面试"刁难"问题,值得一读
    以Integer类型传参值不变来理解Java值传参
    Linux系统安装snmp服务
    直接取数据到RANGE
    SAP翔子_2019集结号
    销售订单BOM组件分配(CP_BD_DIRECT_INPUT_PLAN_EXT)
    SAP翔子_webservice篇索引
    函数篇3 EXCEL导入函数去除行数限制
    ABAP基础篇4 常用的字符串操作语法
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12115906.html
Copyright © 2011-2022 走看看