# 代码5-1 import numpy as np import matplotlib.pyplot as plt import warnings # 忽略所有警告 warnings.filterwarnings("ignore") # %matplotlib inline表示在行中显示图片,在命令行运行报错 data = np.arange(0, 1.1, 0.01) plt.title('lines') # 添加标题 plt.xlabel('x') # 添加x轴的名称 plt.ylabel('y') # 添加y轴的名称 plt.xlim((0, 1)) # 确定x轴范围 plt.ylim((0, 1)) # 确定y轴范围 plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 规定x轴刻度 plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 确定y轴刻度 plt.plot(data, data ** 2) # 添加y=x^2曲线 plt.plot(data, data ** 4) # 添加y=x^4曲线 plt.legend(['y=x^2', 'y=x^4']) plt.savefig('../tmp/y=x^2.jpg') plt.show() # 代码5-2 x = np.arange(0, np.pi * 2, 0.01) # 第一幅子图 p1 = plt.figure(figsize=(8, 6), dpi=80) # 确定画布大小 # 创建一个2行1列的子图,并开始绘制第一幅 ax1 = p1.add_subplot(2, 1, 1) plt.title('lines') # 添加标题 plt.xlabel('x') # 添加x轴的名称 plt.ylabel('y') # 添加y轴的名称 plt.xlim((0, 1)) # 确定x轴范围 plt.ylim((0, 1)) # 确定y轴范围 plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 规定x轴刻度 plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 确定y轴刻度 plt.plot(x, x ** 2) # 添加y=x^2曲线 plt.plot(x, x ** 4) # 添加y=x^4曲线 plt.legend(['y=x^2', 'y=x^4']) # 第二幅子图 ax2 = p1.add_subplot(2, 1, 2) # 开始绘制第二幅 plt.title('sin/cos(x)') # 添加标题 plt.xlabel('x') # 添加x轴的名称 plt.ylabel('y') # 添加y轴的名称 plt.xlim((0, np.pi * 2)) # 确定x轴范围 plt.ylim((-1, 1)) # 确定y轴范围 plt.xticks([0, np.pi / 2, np.pi, np.pi * 1.5, np.pi * 2]) # 规定x轴刻度 plt.yticks([-1, -0.5, 0, 0.5, 1]) # 确定y轴刻度 plt.plot(x, np.sin(x)) # 添加sin(x)曲线 plt.plot(x, np.cos(x)) # 添加cos(x)曲线 plt.legend(['y=sin(x)', 'y=cos(x)']) plt.tight_layout() # 调整两个子图间距 plt.savefig('../tmp/sincos(x).jpg') plt.show() # 代码5-3 # 原图 x = np.linspace(0, 4 * np.pi) # 生成x轴数据 y = np.sin(x) # 生成y轴数据 plt.plot(x, y, label='$sin(x)$') # 绘制sin曲线图 plt.title('sin(x)') plt.xlabel('x') plt.ylabel('y') plt.show() # 修改rc参数后的图 plt.rcParams['lines.linestyle'] = '-.' plt.rcParams['lines.linewidth'] = 3 plt.plot(x, y, label='$sin(x)$') # 绘制三角函数 plt.title('sin(x)') plt.xlabel('x') plt.ylabel('y') plt.show() # 代码5-4 # 无法显示中文标题 plt.plot(x, y, label='$sin(x)$') # 绘制三角函数 plt.title('sin(x)曲线') plt.xlabel('x') plt.ylabel('y') plt.show() # 设置rc参数显示中文标题 # 设置字体为SimHei显示中文 plt.rcParams['font.sans-serif'] = 'SimHei' plt.rcParams['axes.unicode_minus'] = False # 设置正常显示符号 plt.plot(x, y, label='$sin(x)$') # 绘制三角函数 plt.title('sin(x)曲线') plt.xlabel('x') plt.ylabel('y') plt.show() # 代码5-5 import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示 plt.rcParams['axes.unicode_minus'] = False data = np.load('../data/2001-2019年劳动力与就业人员数据.npz', encoding='ASCII', allow_pickle=True) columns = data['arr_0'] # 提取其中的columns数组,视为数据的标签 values = data['arr_1'] # 提取其中的values数组,视为数据的存在位置 plt.figure(figsize=(12, 6), dpi=1080) # 设置画布 plt.scatter(values[:, 0], values[:, 1], marker='o') # 绘制散点图 plt.xlabel('年份(年)') plt.ylabel('劳动力人数(万人)') plt.ylim(70000, 85000) # 设置y轴范围 plt.xticks(range(2001, 2020, 1), labels=values[:, 0]) plt.title('2001~2019年劳动力人数散点图') # 添加图表标题 plt.show() # 代码5-6 p = plt.figure(figsize=(12, 6), dpi=1080) # 设置画布 # 绘制散点图1 plt.scatter(values[:, 0], values[:, 3], marker='o', c='b') # 绘制散点图2 plt.scatter(values[:, 0], values[:, 4], marker='o', c='r') plt.xlabel('年份(年)') plt.ylabel('人数(万人)') plt.ylim(20000, 60000) # 设置y轴范围 plt.xticks(range(2001, 2020, 1), labels=values[:, 0]) plt.legend(['城镇就业人员', '乡村就业人员']) # 设置图例 plt.title('2001~2019年城乡就业人数散点图') # 添加图表标题 plt.show() # 代码5-7 p = plt.figure(figsize=(12, 6), dpi=1080) #设置画布 plt.plot(values[:, 0], values[:, 2], color='r', linestyle='-') plt.xlabel('年份(年)') plt.ylabel('人数(万人)') plt.ylim(70000, 80000) # 设置y轴范围 plt.xticks(range(2001, 2020, 1), labels=values[:, 0]) plt.title('2001~2019年就业人数折线图') plt.show() # 代码5-8 p = plt.figure(figsize=(12, 6), dpi=1080) #设置画布 plt.plot(values[:, 0], values[:, 2], c='b', linestyle = '-', marker = 'o') # 绘制点线图 plt.xlabel('年份(年)') plt.ylabel('人数(万人)') plt.ylim(70000, 80000) # 设置y轴范围 plt.xticks(range(2001, 2020, 1), labels=values[:, 0]) plt.title('2001~2019年就业人数点线图') plt.show() # 代码5-9 p = plt.figure(figsize=(12, 6), dpi=1080) #设置画布 plt.plot(values[:, 0], values[:, 3], 'bs-', values[:, 0], values[:, 4], 'ro-.') plt.xlabel('年份(年)') plt.ylabel('人数(万人)') plt.ylim(20000, 60000) # 设置y轴范围 plt.xticks(range(2001, 2020, 1), labels=values[:, 0]) plt.legend(['城镇就业人员', '乡村就业人员']) plt.title('2001~2019年城乡就业人数点线图') plt.show() # 代码5-10 columns = data['arr_0'] # 提取其中的columns数组,视为数据的标签 values = data['arr_1'] # 提取其中的values数组,视为数据的存在位置 # 绘制柱形图 labels = ['城镇就业人员', '乡村就业人员'] p = plt.figure(figsize=(6, 6), dpi=1080) plt.bar(range(2), values[-1, 3:5], width=0.5) plt.xlabel('类别') plt.ylabel('就业人数(万人)') plt.xticks(range(2), labels) plt.title('2019年城乡就业人数柱形图') plt.show() # 代码5-11 label = ['城镇就业人员', '乡村就业人员'] explode = [0.01, 0.01] # 设定各项距离圆心n个半径 p = plt.figure(figsize=(6, 6), dpi=1080) # 设置画布 plt.pie(values[-1, 3:5], explode=explode, labels=label, autopct='%1.1f%%') plt.title('2019年城乡就业人数分布饼图') plt.show() # 代码5-12 label= ['城镇就业人员', '乡村就业人员'] gdp = (list(values[:, 3]),list(values[:, 4])) p = plt.figure(figsize=(6, 6), dpi=1080) plt.boxplot(gdp, notch=True, labels=label, meanline=True) plt.title('2001~2019年城乡就业人数分布箱线图') plt.show()