Matplotlib数据可视化基础学习笔记
import numpy as np
import matplotlib.pyplot as plt
## %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('C:/python学习/y=x^2.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q8oOHYtu-1603987563962)(output_1_0.png)]
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0,1.1,0.01)
plt.title('lines')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(data, data**2)#暂时不用掌握这里
plt.plot(data, data**4)
plt.legend(['y=x^2','y=x^4'])
plt.savefig('C:/python学习/y=x^2.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Js4nGPyG-1603987563964)(output_2_0.png)]
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False ## 设置正常显示符号
plt.title('夜空中最亮的欣')
a = 1
t = np.linspace(0 , 2 * np.pi, 1024)
X = a*(2*np.cos(t)-np.cos(2*t))
Y = a*(2*np.sin(t)-np.sin(2*t))
plt.plot(Y, X,color='r')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShhjYlv6-1603987563965)(output_3_0.png)]
rad = np.arange(0,np.pi*2,0.01)
##第一幅子图
p1 = plt.figure(figsize=(8,6),dpi=80)## 确定画布大小
ax1 = p1.add_subplot(2,1,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(rad,rad**2)## 添加y=x^2曲线
plt.plot(rad,rad**4)## 添加y=x^4曲线
plt.legend(['y=x^2','y=x^4'])
##第二幅子图
ax2 = p1.add_subplot(2,1,2)## 创开始绘制第2幅
plt.title('sin/cos') ## 添加标题
plt.xlabel('rad')## 添加x轴的名称
plt.ylabel('value')## 添加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(rad,np.sin(rad))## 添加sin曲线
plt.plot(rad,np.cos(rad))## 添加cos曲线
plt.legend(['sin','cos'])
plt.savefig('C:/python学习/sincos.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b0rIbjGQ-1603987563967)(output_4_0.png)]
rad = np.arange(0,np.pi*2,0.01)
np.pi
3.141592653589793
fig = plt.figure(figsize=(a, b), dpi=dpi)
- figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸
- dpi 为设置图形每英寸的点数
## 原图
x = np.linspace(0, 4*np.pi)## 生成x轴数据
y = np.sin(x)## 生成y轴数据
plt.plot(x,y,label="$sin(x)$")## 绘制sin曲线图
plt.title('sin')
plt.savefig('C:/python学习/默认sin曲线.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e5jD0fWs-1603987563967)(output_8_0.png)]
np.arange与np.linspace
- 当使用非整数步骤(如0.1)时,结果往往不一致。对于这些情况,最好使用‘linspace’。
## 修改rc参数后的图
plt.rcParams['lines.linestyle'] = '-.'#线条样式
plt.rcParams['lines.linewidth'] = 3 # 线条宽度
plt.rcParams['lines.marker'] = "*" #线条上点的形状
plt.rcParams['lines.markersize'] = 5 #点的大小
plt.plot(x,y,label="$sin(x)$")## 绘制三角函数
plt.title('sin')
plt.savefig('C:/python学习/修改rc参数后sin曲线.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xqb86lpT-1603987563968)(output_10_0.png)]
## 无法显示中文标题
plt.plot(x,y,label="$sin(x)$")## 绘制三角函数
plt.title('sin曲线')
plt.savefig('C:/python学习/无法显示中文标题sin曲线.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-spKvIasa-1603987563969)(output_11_0.png)]
##设置rc参数显示中文标题
## 设置字体为SimHei显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False ## 设置正常显示符号
plt.plot(x,y,label="$sin(x)$")## 绘制三角函数
plt.title('sin曲线')
plt.savefig('C:/python学习/显示中文标题sin曲线.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PuJqBED1-1603987563969)(output_12_0.png)]
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False ## 这两行用来设置中文标题
分析特征间的关系
绘制散点图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('C:\python学习\Python数据分析与应用\数据\国民经济核算季度数据.npz',allow_pickle=True)
print(data.files) # 查看数据文件包含的名称
name = data['columns'] ## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
plt.figure(figsize=(8,7))## 设置画布
plt.scatter(values[:,0],values[:,2], marker='o')## 绘制散点图
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(0,70,4), values[range(0,70,4),1], rotation=45) # 只有第一季度的数据
plt.title('2000-2017年季度生产总值散点图')## 添加图表标题
plt.savefig('C:/python学习/2000-2017年季度生产总值散点图.png')
plt.show()
['columns', 'values']
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ja44187a-1603987563969)(output_16_1.png)]
当出现这个错误Object arrays cannot be loaded when allow_pickle=False
- 解决:将np.load(path) 改为np.load(path, allow_pickle=True)
print(data.files)
['columns', 'values']
# 说明
a = np.ones((3, 3))
b = np.zeros((4, 4))
np.savez('C:/python学习/my_data', ones=a, zeros=b)
da = np.load('C:/python学习/my_data.npz')
da.files
['ones', 'zeros']
plt.figure(figsize=(8,7))## 设置画布
## 绘制散点1
plt.scatter(values[:,0],values[:,3], marker='o',c='red')
## 绘制散点2
plt.scatter(values[:,0],values[:,4], marker='D',c='blue')
## 绘制散点3
plt.scatter(values[:,0],values[:,5], marker='v',c='yellow')
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.xticks(range(0,70,4), values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年各产业季度生产总值散点图')## 添加图表标题
plt.legend(['第一产业','第二产业','第三产业'])## 添加图例
plt.savefig('C:/python学习/2000-2017年各产业季度生产总值散点图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9bumkIUN-1603987563969)(output_21_0.png)]
plt.figure(figsize=(8,7))## 设置画布
## 绘制折线图
plt.plot(values[:,0],values[:,2],color = 'b',linestyle = '--')
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年季度生产总值折线图')## 添加图表标题
plt.savefig('C:/python学习/2000-2017年季度生产总值折线图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fr31C2Tn-1603987563970)(output_22_0.png)]
plt.figure(figsize=(8,7))## 设置画布
plt.plot(values[:,0],values[:,2],color = 'g',linestyle = '--',
marker = 'o')## 绘制折线图
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年季度生产总值点线图')## 添加图表标题
plt.savefig('C:/python学习/2000-2017年季度生产总值点线图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0bWngdj3-1603987563970)(output_23_0.png)]
plt.figure(figsize=(8,7))## 设置画布
plt.plot(values[:,0],values[:,3],'bs-',
values[:,0],values[:,4],'ro-.',
values[:,0],values[:,5],'gH--')## 绘制折线图
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年各产业季度生产总值折线图')## 添加图表标题
plt.legend(['第一产业','第二产业','第三产业'])
plt.savefig('C:/python学习/2000-2017年季度各产业生产总值折线图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6wAj2IWB-1603987563972)(output_24_0.png)]
任务实现
- 绘制2000-2017各产业与行业的国民生产总值散点图
- 绘制2000-2017各产业与行业的国民生产总值折线图
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('C:/python学习/Python数据分析与应用/数据/国民经济核算季度数据.npz',allow_pickle=True)
name = data['columns']## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
p = plt.figure(figsize=(12,12)) ##设置画布
## 子图1
ax1 = p.add_subplot(2,1,1)
plt.scatter(values[:,0],values[:,3], marker='o',c='r')## 绘制散点
plt.scatter(values[:,0],values[:,4], marker='D',c='b')## 绘制散点
plt.scatter(values[:,0],values[:,5], marker='v',c='y')## 绘制散点
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.title('2000-2017年各产业季度生产总值散点图')## 添加图表标题
plt.legend(['第一产业','第二产业','第三产业'])## 添加图例
## 子图2
ax2 = p.add_subplot(2,1,2)
plt.scatter(values[:,0],values[:,6], marker='o',c='r')## 绘制散点
plt.scatter(values[:,0],values[:,7], marker='D',c='b')## 绘制散点
plt.scatter(values[:,0],values[:,8], marker='v',c='y')## 绘制散点
plt.scatter(values[:,0],values[:,9], marker='8',c='g')## 绘制散点
plt.scatter(values[:,0],values[:,10], marker='p',c='c')## 绘制散点
plt.scatter(values[:,0],values[:,11], marker='+',c='m')## 绘制散点
plt.scatter(values[:,0],values[:,12], marker='s',c='k')## 绘制散点
## 绘制散点
plt.scatter(values[:,0],values[:,13], marker='*',c='purple')
## 绘制散点
plt.scatter(values[:,0],values[:,14], marker='d',c='brown')
plt.legend(['农业','工业','建筑','批发','交通', '餐饮','金融','房地产','其他'])
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.savefig('C:/python学习/2000-2017年季度各行业生产总值散点子图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HMitxWLd-1603987563972)(output_26_0.png)]
pic1 = plt.figure(dpi=100, figsize=(15, 15)) #这个图有点难,先不学
labs = name[6:]
my_title = ['第一季度','第二季度','第三季度','第四季度']
for j in range(4):
pic1.add_subplot(2, 2, j+1)
temp1 = values[j::4, 6:]
for i in range(len(temp1[0])):
plt.scatter(range(len(temp1)), temp1[:, i], label=labs[i][:2])
plt.legend()
plt.ylabel('增加值(亿元)')
plt.xticks(range(len(temp1)), values[j::4, 1], rotation=45)
plt.title(my_title[j])
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MKopjnIF-1603987563973)(output_27_0.png)]
p1 = plt.figure(figsize=(8,7))## 设置画布
## 子图1
ax3 = p1.add_subplot(2,1,1)
plt.plot(values[:,0],values[:,3],'b-',
values[:,0],values[:,4],'r-.',
values[:,0],values[:,5],'g--')## 绘制折线图
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.title('2000-2017年各产业季度生产总值折线图')## 添加图表标题
plt.legend(['第一产业','第二产业','第三产业'])## 添加图例
## 子图2
ax4 = p1.add_subplot(2,1,2)
plt.plot(values[:,0],values[:,6], 'r-',## 绘制折线图
values[:,0],values[:,7], 'b-.',## 绘制折线图
values[:,0],values[:,8],'y--',## 绘制折线图
values[:,0],values[:,9], 'g:',## 绘制折线图
values[:,0],values[:,10], 'c-',## 绘制折线图
values[:,0],values[:,11], 'm-.',## 绘制折线图
values[:,0],values[:,12], 'k--',## 绘制折线图
values[:,0],values[:,13], 'r:',## 绘制折线图
values[:,0],values[:,14], 'b-')## 绘制折线图
plt.legend(['农业','工业','建筑','批发','交通',
'餐饮','金融','房地产','其他'])
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加纵轴标签
plt.xticks(range(0,70,4), values[range(0,70,4),1], rotation=45)
plt.savefig('C:/python学习/2000-2017年季度各行业生产总值折线子图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-803l1GN2-1603987563973)(output_28_0.png)]
pic1 = plt.figure(dpi=100, figsize=(15, 15)) #跟前面的循环语句作图差不多,先不学
labs = name[6:]
my_title = ['第一季度','第二季度','第三季度','第四季度']
for j in range(4):
pic1.add_subplot(2, 2, j+1)
temp1 = values[j::4, 6:]
for i in range(len(temp1[0])):
plt.plot(range(len(temp1)), temp1[:, i], label=labs[i][:2])
plt.legend()
plt.ylabel('增加值(亿元)')
plt.xticks(range(len(temp1)), values[j::4, 1], rotation=45)
plt.title(my_title[j])
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UdVOJkZV-1603987563975)(output_29_0.png)]
分析特征内部数据分布与分散状况
绘制直方图
plt.rcParams['font.sans-serif'] = 'SimHei'## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('C:/python学习/Python数据分析与应用/数据/国民经济核算季度数据.npz',allow_pickle=True)
name = data['columns']## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
label = ['第一产业','第二产业','第三产业']## 刻度标签
plt.figure(figsize=(6,5))## 设置画布
my_height = values[-1,3:6]
plt.bar(range(3), my_height, width = 0.5)## 绘制直方图
plt.xlabel('产业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(3), label)
plt.title('2017年第一季度各产业国民生产总值直方图')## 添加图表标题
for i in range(len(my_height)):
plt.text(i, my_height[i], my_height[i], va='bottom', ha='center')
plt.savefig('C:/python学习/2017年第一季度各产业国民生产总值直方图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6x47UbkN-1603987563975)(output_32_0.png)]
plt.figure(figsize=(6,6))## 将画布设定为正方形,则绘制的饼图是正圆
label= ['第一产业','第二产业','第三产业']## 定义饼状图的标签,标签是列表
explode = [0.01, 0.01, 0.01]## 设定各项离心n个半径
plt.pie(values[-1,3:6], explode=explode, labels=label, autopct='%1.1f%%')## 绘制饼图
plt.title('2017年第一季度各产业国民生产总值饼图')
plt.savefig('C:/python学习/2017年第一季度各产业生产总值占比饼图')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ooIkuCcr-1603987563975)(output_33_0.png)]
label= ['第一产业','第二产业','第三产业']## 定义标签
gdp = (list(values[:,3]),list(values[:,4]),list(values[:,5]))
plt.figure(figsize=(6,4))
plt.boxplot(gdp,notch=True,labels = label, meanline=True)
plt.title('2000-2017各产业国民生产总值箱线图')
plt.savefig('C:/python学习/2000-2017各产业国民生产总值箱线图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-21BlnmDn-1603987563976)(output_34_0.png)]
iris = np.loadtxt('C:/python学习/Python数据分析与应用/数据/iris_sepal_length.csv', delimiter=',')
tem = plt.boxplot(iris)
plt.show()
print(tem.items())
print(tem['medians'][0].get_ydata())
print(tem['medians'][0].get_xdata())
print('\n',tem['boxes'][0].get_ydata())
print(tem['boxes'][0].get_xdata())
print('\n',tem['caps'][0].get_ydata())
print(tem['caps'][0].get_xdata())
print('\n',tem['caps'][1].get_ydata())
print(tem['caps'][1].get_xdata())
print('\n',tem['whiskers'][0].get_ydata())
print(tem['whiskers'][0].get_xdata())
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZPoXQUl-1603987563976)(output_35_0.png)]
dict_items([('whiskers', [<matplotlib.lines.Line2D object at 0x00000201093ABF70>, <matplotlib.lines.Line2D object at 0x000002010932DC70>]), ('caps', [<matplotlib.lines.Line2D object at 0x000002010932D340>, <matplotlib.lines.Line2D object at 0x000002010932D3D0>]), ('boxes', [<matplotlib.lines.Line2D object at 0x00000201093ABA60>]), ('medians', [<matplotlib.lines.Line2D object at 0x000002010932D970>]), ('fliers', [<matplotlib.lines.Line2D object at 0x000002010A5F8310>]), ('means', [])])
[5.8 5.8]
[0.925 1.075]
[5.1 5.1 6.4 6.4 5.1]
[0.925 1.075 1.075 0.925 0.925]
[4.3 4.3]
[0.9625 1.0375]
[7.9 7.9]
[0.9625 1.0375]
[5.1 4.3]
[1. 1.]
任务实现
- 绘制国民生产总值构成分布直方图
- 绘制国民生产总值构成分布饼图
- 绘制国民生产总值分散情况箱线图
import numpy as np
import matplotlib.pyplot as plt
data = np.load('C:/python学习/Python数据分析与应用/数据/国民经济核算季度数据.npz',allow_pickle=True)
name = data['columns'] ## 提取其中的columns数组,视为数据的标签
values = data['values']## 提取其中的values数组,数据的存在位置
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
label1 = ['第一产业','第二产业','第三产业']## 刻度标签1
label2 = ['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他']## 刻度标签2
p = plt.figure(figsize=(12,12))
## 子图1
ax1 = p.add_subplot(2,2,1)
plt.bar(range(3),values[0,3:6],width = 0.5)## 绘制直方图
plt.xlabel('产业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(3),label1)
plt.title('2000年第一季度国民生产总值产业构成分布直方图')
## 子图2
ax2 = p.add_subplot(2,2,2)
plt.bar(range(3),values[-1,3:6],width = 0.5)## 绘制直方图
plt.xlabel('产业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(3),label1)
plt.title('2017年第一季度国民生产总值产业构成分布直方图')
## 子图3
ax3 = p.add_subplot(2,2,3)
plt.bar(range(9),values[0,6:],width = 0.5)## 绘制直方图
plt.xlabel('行业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(9),label2)
plt.title('2000年第一季度国民生产总值行业构成分布直方图')## 添加图表标题
## 子图4
ax4 = p.add_subplot(2,2,4)
plt.bar(range(9),values[-1,6:],width = 0.5)## 绘制直方图
plt.xlabel('行业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(9),label2)
plt.title('2017年第一季度国民生产总值行业构成分布直方图')## 添加图表标题
## 保存并显示图形
plt.savefig('C:/python学习/国民生产总值构成分布直方图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nzRO4c0l-1603987563977)(output_37_0.png)]
label1 = ['第一产业','第二产业','第三产业']## 标签1
label2 = ['农业','工业','建筑','批发','交通',
'餐饮','金融','房地产','其他']## 标签2
explode1 = [0.01,0.01,0.01]
explode2 = [0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01]
p = plt.figure(figsize=(12,12))
## 子图1
ax1 = p.add_subplot(2,2,1)
plt.pie(values[0,3:6],explode=explode1,labels=label1,
autopct='%1.1f%%')## 绘制散点图
plt.title('2000年第一季度国民生产总值产业构成分布饼图')
## 子图2
ax2 = p.add_subplot(2,2,2)
plt.pie(values[-1,3:6],explode=explode1,labels=label1,
autopct='%1.1f%%')## 绘制散点图
plt.title('2017年第一季度国民生产总值产业构成分布饼图')
## 子图3
ax3 = p.add_subplot(2,2,3)
plt.pie(values[0,6:],explode=explode2,labels=label2,
autopct='%1.1f%%')## 绘制散点图
plt.title('2000年第一季度国民生产总值行业构成分布饼图')## 添加图表标题
## 子图4
ax4 = p.add_subplot(2,2,4)
plt.pie(values[-1,6:],explode=explode2,labels=label2,
autopct='%1.1f%%')## 绘制散点图
plt.title('2017年第一季度国民生产总值行业构成分布饼图')## 添加图表标题
## 保存并显示图形
plt.savefig('C:/python学习/国民生产总值构成分布饼图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4mTRjsED-1603987563977)(output_38_0.png)]
label1 = ['第一产业','第二产业','第三产业']## 标签1
label2 = ['农业','工业','建筑','批发','交通',
'餐饮','金融','房地产','其他']## 标签2
gdp1 = (list(values[:,3]),list(values[:,4]),list(values[:,5]))
gdp2 = ([list(values[:,i]) for i in range(6,15)])
p = plt.figure(figsize=(8,8))
## 子图1
ax1 = p.add_subplot(2,1,1)
## 绘制箱线图
plt.boxplot(gdp,notch=True,labels = label1, meanline=True)
plt.title('2000-2017各产业国民生产总值箱线图')
plt.ylabel('生产总值(亿元)')## 添加y轴名称
## 子图2
ax2 = p.add_subplot(2,1,2)
## 绘制箱线图
plt.boxplot(gdp2,notch=True,labels = label2, meanline=True)
plt.title('2000-2017各行业国民生产总值箱线图')
plt.xlabel('行业')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
## 保存并显示图形
plt.savefig('C:/python学习/国民生产总值分散情况箱线图.png')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YiptpbCB-1603987563978)(output_39_0.png)]
p2 = plt.figure(dpi=100, figsize=(8, 8))
a_labs = [i[:4] for i in name[3: 6]]
b_labs = [i[:2] for i in name[6:]]
p2.add_subplot(2, 2, 1)
plt.bar(range(3), values[0, 3: 6])
plt.xticks(range(3), a_labs)
plt.title('2000年第一季度')
p2.add_subplot(2, 2, 2)
plt.bar(range(3), values[-1, 3: 6])
plt.xticks(range(3), a_labs)
plt.title('2017年第一季度')
p2.add_subplot(2, 2, 3)
y3 = values[0, 6:]
plt.bar(range(len(y3)), y3)
plt.xticks(range(len(y3)), b_labs)
plt.title('2000年第一季度')
p2.add_subplot(2, 2, 4)
y3 = values[-1, 6:]
plt.bar(range(len(y3)), y3)
plt.xticks(range(len(y3)), b_labs)
plt.title('2017年第一季度')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EESQX57k-1603987563978)(output_40_0.png)]
p2 = plt.figure(dpi=100, figsize=(6, 6))
a_labs = [i[:4] for i in name[3: 6]]
b_labs = [i[:2] for i in name[6:]]
p2.add_subplot(2, 2, 1)
plt.pie(values[0, 3: 6], labels=a_labs, autopct='%1.1f%%')
plt.title('2000年第一季度')
p2.add_subplot(2, 2, 2)
plt.pie(values[-1, 3: 6], labels=a_labs, autopct='%1.1f%%')
plt.title('2017年第一季度')
p2.add_subplot(2, 2, 3)
y3 = values[0, 6:]
plt.pie(y3, labels=b_labs, autopct='%1.1f%%')
plt.title('2000年第一季度')
p2.add_subplot(2, 2, 4)
y3 = values[-1, 6:]
plt.pie(y3, labels=b_labs, autopct='%1.1f%%')
plt.title('2017年第一季度')
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HLT4Oyjr-1603987563979)(output_41_0.png)]
p2 = plt.figure(dpi=100, figsize=(8, 8))
p2.add_subplot(2, 1, 1)
plt.boxplot([list(values[:, 4]), list(values[:, 5]), list(values[:, 6])])
plt.xticks(range(1, 4), a_labs)
p2.add_subplot(2, 1, 2)
tem = []
for i in range(6, len(values[0])):
tem.append(list(values[:, i]))
plt.boxplot(tem)
plt.xticks(range(1, len(b_labs)+1), b_labs)
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvnSeDKH-1603987563979)(output_42_0.png)]
import numpy as np
print(data['columns'])
['序号' '时间' '国内生产总值_当季值(亿元)' '第一产业增加值_当季值(亿元)' '第二产业增加值_当季值(亿元)'
'第三产业增加值_当季值(亿元)' '农林牧渔业增加值_当季值(亿元)' '工业增加值_当季值(亿元)' '建筑业增加值_当季值(亿元)'
'批发和零售业增加值_当季值(亿元)' '交通运输、仓储和邮政业增加值_当季值(亿元)' '住宿和餐饮业增加值_当季值(亿元)'
'金融业增加值_当季值(亿元)' '房地产业增加值_当季值(亿元)' '其他行业增加值_当季值(亿元)']
print(data['values'])
[[1 '2000年第一季度' 21329.9 ... 1235.9 933.7 3586.1]
[2 '2000年第二季度' 24043.4 ... 1124.0 904.7 3464.9]
[3 '2000年第三季度' 25712.5 ... 1170.4 1070.9 3518.2]
...
[67 '2016年第三季度' 190529.5 ... 15472.5 12164.1 37964.1]
[68 '2016年第四季度' 211281.3 ... 15548.7 13214.9 39848.4]
[69 '2017年第一季度' 180682.7 ... 17213.5 12393.4 42443.1]]
上一篇: 事件委托
下一篇: 微信小程序开发之一 —— 准备工作