1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 5 # 构建数据 6 def build_data(): 7 res = np.load("./国民经济核算季度数据.npz", allow_pickle=True) 8 columns = res["columns"] 9 values = res["values"] 10 return columns, values 11 12 def show_data(columns, values): 13 fig = plt.figure() 14 plt.rcParams['font.sans-serif'] = 'SimHei' 15 plt.rcParams['axes.unicode_minus'] = False 16 17 fig.add_subplot(2, 1, 1) 18 x = (list(values[:, 3]), list(values[:, 4]), list(values[:, 5])) 19 labels = [tmp[:4] for tmp in columns[3:6]] 20 plt.boxplot(x, notch=True, labels=labels, meanline=True, showmeans=True) 21 plt.title("2000-2017年各个产业生产总值箱线图") 22 plt.xlabel("产业") 23 plt.ylabel("生产总值(亿元)") 24 25 fig.add_subplot(2, 1, 2) 26 x = (list(values[:, 6]), list(values[:, 7]), list(values[:, 8]), list(values[:, 9]), list(values[:, 10]), list(values[:, 11]), list(values[:, 12]), list(values[:, 13]), list(values[:, 14])) 27 labels = [tmp[:2] for tmp in columns[6:]] 28 plt.boxplot(x, notch=True, labels=labels, meanline=True, showmeans=True) 29 plt.title("2000-2017年各个行业生产总值箱线图") 30 plt.xlabel("行业") 31 plt.ylabel("生产总值(亿元)") 32 33 plt.savefig("./2000-2017年各个产业生产总值箱线图.png") 34 plt.show() 35 36 37 def main(): 38 columns, values = build_data() 39 show_data(columns, values) 40 41 if __name__ == '__main__': 42 main()