对粮食产量进行大数据分析
一、选题背景
近年来,我国各个省份的粮食总产量以及增量增速逐渐倍受关注,如何增加粮食产量也成为了人们关注的热点话题。通过互联网上的信息发布网站,我获取并整合了各省粮食产量数据。其中,“中国产业信息网”每年发布的国内新一年的粮食产量信息。网站发布的信息包括近些年的粮食产量、占比、走势、播种面积等。本文章的目标是用python编程,抓取网站的数据,并将获取数据保存到Excel文件中,然后使用python对数据进行清洗及处理,利用python可视化,结合数据处理与分析,获得数据的统计分析结果。
二、数据获取与清洗
1.数据描述
数据来源:中国产业信息网网站页面
数据获取:中国产业信息网网站的信息,并将获这些信息写入excel表格。
2.使用工具
使用到的库有:
① matplotlib库
② requests库
③ pandas库
④ BeautifulSoup库
⑤ pyecharts库
⑥ bs4库
⑦ csv库
报告中使用requests库爬取网页获取数据,利用bs4库解析数据,利用pandas库读取数据,利用matplotlib库、BeautifulSoup库和pyecharts库实现数据可视化。
3.数据获取步骤
第一步:从网页上获取HTML内容。
第二步:分析网页内容并提取有用数据。
第三步:将获得的数据写入Excel文件。
4.页面分析如下
5.程序代码
(1)获取数据及各地区粮食产量获取的代码如下(爬虫程序及运行结果如图1所示)
1 import requests 2 from bs4 import BeautifulSoup 3 import bs4 4 import csv 5 6 def getHTMLText(url): 7 try: 8 r = requests.get(url, timeout = 30) 9 r.raise_for_status() 10 r.encoding = r.apparent_encoding 11 return r.text 12 except: 13 return '爬取失败' 14 15 def fillUnivlist(ulist,html): 16 soup = BeautifulSoup(html,"html.parser") 17 for tr in soup.find('tbody').children: 18 if isinstance(tr,bs4.element.Tag): 19 tds = tr('td') 20 ulist.append([tds[0].text,tds[1].text,tds[2].text,tds[3].text,tds[4].text,tds[5].text]) 21 22 def printUnivList(ulist,num): 23 tplt="{0:8}\t{1:^8}\t{2:^8}\t{3:^8}\t{4:^8}\t{5:^8}" 24 for i in range(num): 25 u = ulist[i] 26 print(tplt.format(u[0],u[1],u[2],u[3],u[4],u[5])) 27 28 def writeUlistfile(ulist): 29 with open('Ulist1.csv','w',newline='') as fout: 30 writer = csv.writer(fout) 31 for row in ulist: 32 writer.writerow(row) 33 34 def main(): 35 url = 'https://www.chyxx.com/industry/202103/938485.html' 36 html = getHTMLText(url) 37 uinfo =[] 38 fillUnivlist(uinfo,html) 39 writeUlistfile(uinfo) 40 printUnivList(uinfo,32) 41 42 main()
图1 爬虫程序及运行结果
(2)将获得全国各地区的粮食产量以csv形式存储到Excel表格中,代码如下:
3.数据保存到Excel文件(如图2所示)
图2 粮食产量Excel文件截图
三、数据处理和分析
1.数据分析
对全国各地区粮食总产量数据总体以及全国粮食产量排名前五的地区分析。用python对各地区粮食产量数据进行可视化处理,制作出柱状图。(如图3所示)
1 import pandas as pd 2 import matplotlib. pyplot as plt 3 from matplotlib import rcParams 4 rcParams['font.family'] = 'simhei' #汉字显示的字体 5 sheet=pd.read_csv("C:\\Users\Qi520503\Desktop\mpython\\Ulist1.csv",encoding="GBK") 6 7 sheet_new=sheet[0:31]#数据太多,因此切片处理 8 sheet_new.plot.bar(x="地区",y=["2016年","2017年","2018年","2019年","2020年"], 9 color=["red", "blue", "yellow","green","orange"]) 10 plt. title('各地区粮食产量图', fontsize = 10, fontweight='bold') 11 plt. xlabel('地区', fontweight = 'bold') 12 plt. ylabel('粮食产量', fontweight = 'bold') 13 plt.hist(sheet['2020年'],bins=(50),color="green") 14 plt.title('2016-2020全国各地区粮食产量柱状图',fontsize=12,fontweight='bold') 15 plt.xlabel('地区',fontsize=12,fontweight='bold') 16 plt.ylabel('粮食产量/万吨',fontsize=12,fontweight='bold') 17 plt. show()
图3 各地区粮食产量走势
2.统计江西、山东、河南和湖北四省粮食产量,四省粮食的产量及对比绘制柱状图。(如图4所示)
图4 江西、山东、河南和湖北四省粮食产量柱状图
3.统计全国粮食产量排名前五名省(市,区)粮食产量,粮食产量总和绘制柱状图。(如图5所示)
图5 全国粮食产量排名前五名粮食产量总和图
4.统计全国粮食产量排名前五名省(市,区)粮食产量在全国的分布,绘制分布地图。(如图6所示)
图6 全国粮食总产量前五地区在全国的分布
5.统计全国粮食产量排名前五名省(市,区)粮食产量历年趋势,绘制折线图。(如图7所示)
6..统计全国各地区粮食总产量趋势,绘制折线图。(如图8所示)
1 import pandas as pd
2 import matplotlib.pyplot as plt
3 from matplotlib import rcParams
4 rcParams ['font.family'] = 'simhei'#汉字显示的字体
5 df = pd.read_excel("C:\\Users\Qi520503\Desktop\mpython\\Ulist5.xlsx")
6 #plt.legend( labels = ['山东省'], loc = 7) #添加图例
7 #plt.legend(labels = ['山东省'], loc='lower center')
8 #plt.legend(loc="right") # 与plt.legend(loc=1)等价
9 plt.plot(df["年份"],df["粮食总产量"],label='粮食总产量',linewidth=1,color='r',marker='o',
10 markerfacecolor='white',markersize=7)
11 plt.xlabel("年份")
12 plt.ylabel('粮食产量/万吨')
13 plt.title("2016年-2020年全国粮食总产量产量折线图")
14 plt.legend(loc="best",fontsize = 8,markerscale=0.5,bbox_to_anchor=(1.05,1.0),borderaxespad = 0.)
15 plt.grid()
16 plt.show()
图8 全国粮食总产量折线图
7.统计全国分地区粮食产量趋势,绘制折线图。(如图9所示)
1 import pandas as pd
2 import matplotlib.pyplot as plt
3 from matplotlib import rcParams
4 plt.figure(figsize=(15,10))
5 rcParams ['font.family'] = 'simhei'#汉字显示的字体
6 df = pd.read_excel("C:\\Users\Qi520503\Desktop\mpython\\Ulist2.xlsx")
7 plt.legend(loc=2) #添加图例
8 plt.plot(df["年份"],df["北京市"],label='北京市',linewidth=1,color='g',marker='o',
9 markerfacecolor='blue',markersize=5)
10 plt.plot(df["年份"],df["天津市"],label='天津市',linewidth=1,color='r',marker='o',
11 markerfacecolor='green',markersize=6)
12 plt.plot(df["年份"],df["河北省"],label='河北省',linewidth=1,color='r',marker='o',
13 markerfacecolor='yellow',markersize=7)
14 plt.plot(df["年份"],df["山西省"],label='山西省',linewidth=1,color='g',marker='o',
15 markerfacecolor='red',markersize=8)
16 plt.plot(df["年份"],df["内蒙古自治区"],label='内蒙古自治区',linewidth=1,color='r',marker='o',
17 markerfacecolor='orange',markersize=5)
18 plt.plot(df["年份"],df["辽宁省"],label='辽宁省',linewidth=1,color='r',marker='o',
19 markerfacecolor='white',markersize=6)
20 plt.plot(df["年份"],df["吉林省"],label='吉林省',linewidth=1,color='g',marker='o',
21 markerfacecolor='pink',markersize=7)
22 plt.plot(df["年份"],df["黑龙江省"],label='黑龙江省',linewidth=1,color='r',marker='o',
23 markerfacecolor='black',markersize=8)
24 plt.plot(df["年份"],df["上海市"],label='上海市',linewidth=1,color='r',marker='o',
25 markerfacecolor='brown',markersize=5)
26 plt.plot(df["年份"],df["江苏省"],label='江苏省',linewidth=1,color='g',marker='o',
27 markerfacecolor='blue',markersize=6)
28 plt.plot(df["年份"],df["浙江省"],label='浙江省 ',linewidth=1,color='r',marker='o',
29 markerfacecolor='green',markersize=7)
30 plt.plot(df["年份"],df["安徽省"],label='安徽省',linewidth=1,color='r',marker='o',
31 markerfacecolor='yellow',markersize=8)
32 plt.plot(df["年份"],df["福建省"],label='福建省',linewidth=1,color='g',marker='o',
33 markerfacecolor='red',markersize=5)
34 plt.plot(df["年份"],df["江西省"],label='江西省',linewidth=1,color='r',marker='o',
35 markerfacecolor='orange',markersize=6)
36 plt.plot(df["年份"],df["山东省"],label='山东省',linewidth=1,color='r',marker='o',
37 markerfacecolor='white',markersize=7)
38 plt.plot(df["年份"],df["河南省"],label='河南省',linewidth=1,color='g',marker='o',
39 markerfacecolor='pink',markersize=8)
40 plt.plot(df["年份"],df["湖北省"],label='湖北省',linewidth=1,color='r',marker='o',
41 markerfacecolor='black',markersize=5)
42 plt.plot(df["年份"],df["湖南省"],label='湖南省',linewidth=1,color='r',marker='o',
43 markerfacecolor='brown',markersize=6)
44 plt.plot(df["年份"],df["广东省"],label='广东省',linewidth=1,color='r',marker='o',
45 markerfacecolor='blue',markersize=7)
46 plt.plot(df["年份"],df["广西壮族自治区"],label='广西壮族自治区',linewidth=1,color='r',marker='o',
47 markerfacecolor='green',markersize=8)
48 plt.plot(df["年份"],df["海南省"],label='海南省',linewidth=1,color='r',marker='o',
49 markerfacecolor='yellow',markersize=5)
50 plt.plot(df["年份"],df["重庆市"],label='重庆市',linewidth=1,color='r',marker='o',
51 markerfacecolor='red',markersize=6)
52 plt.plot(df["年份"],df["四川省"],label='四川省',linewidth=1,color='r',marker='o',
53 markerfacecolor='orange',markersize=7)
54 plt.plot(df["年份"],df["贵州省"],label='贵州省',linewidth=1,color='r',marker='o',
55 markerfacecolor='pink',markersize=8)
56 plt.plot(df["年份"],df["云南省"],label='云南省',linewidth=1,color='r',marker='o',
57 markerfacecolor='black',markersize=5)
58 plt.plot(df["年份"],df["西藏自治区"],label='西藏自治区',linewidth=1,color='r',marker='o',
59 markerfacecolor='brown',markersize=6)
60 plt.plot(df["年份"],df["陕西省"],label='陕西省',linewidth=1,color='r',marker='o',
61 markerfacecolor='blue',markersize=7)
62 plt.plot(df["年份"],df["甘肃省"],label='甘肃省',linewidth=1,color='r',marker='o',
63 markerfacecolor='green',markersize=8)
64 plt.plot(df["年份"],df["青海省"],label='青海省',linewidth=1,color='r',marker='o',
65 markerfacecolor='yellow',markersize=5)
66 plt.plot(df["年份"],df["宁夏回族自治区"],label='宁夏回族自治区',linewidth=1,color='r',marker='o',
67 markerfacecolor='red',markersize=6)
68 plt.plot(df["年份"],df["新疆维吾尔自治区"],label='新疆维吾尔自治区',linewidth=1,color='r',marker='o',
69 markerfacecolor='orange',markersize=7)
70 plt.xlabel("年份")
71 plt.ylabel('粮食产量/万吨')
72 plt.title("2016年-2020年各地区粮食产量折线图",fontsize = 30)
73 plt.legend(loc="best",fontsize = 8,markerscale=0.5,bbox_to_anchor=(1.05,1.0),borderaxespad = 0.)
74 plt.grid()
75 plt.show()
图9 各地区粮食产量折线图
图10 各省份的粮食产量占比
图11 山东省粮食产量折线图
图12 山东省粮食产量柱状图
10.基于数据可视化的进一步应用,添加了可以动态显示粮食产量分布的地图,随使用者的指针位置精准显示分省份分年份各地区的精确粮食产量,大大提高了用户使用体验,减少了使用成本。(注:图中的红点代表该地区的省会。地图如图13所示)
图13 全国各地区粮食产量地图
五、数据处理与分析结果
综合以上分析,可以看出:
1、由图3,4,5,6可得全国粮食产量排名前五的地区分别是黑龙江省、河南省、山东省、安徽省、吉林省,直观的可知该五省的粮食产量基本都在20000万吨以上,总产量占我国粮食总产量的40%左右(。所以国家财政向产粮大省倾斜有助于保障国家粮食安全和产量的“压舱石”。对保障我国粮食产量和安全有重大意义。
2、由图7及权威地理数据分析,我国适合产粮的山东、河南和山东位于长江下游冲积扇形成的华北平原且近海。该地区土地肥沃,气候类型以温带季风气候为主,它的主要气候特点是:夏季高温多雨,冬季寒冷少雨,气温年较差大,降水季节变化大。适合小麦玉米等作物的生长。东北地区平原多,地形平坦,河流众多,以肥沃黑土地为主,建有很多国家级农场,受国家或者集体控制,主要气候为温带季风气候,适合种植水稻、玉米、马铃薯等作物。
3、由图8,9,黑龙江省、河南省、山东省、安徽省粮食产量呈逐年平缓递增趋势,吉林省的粮食产量呈逐年递减趋势,稍有些波动。我国粮食总产量逐年递增趋势,2019年和2020年粮食产量增长率最大,2018年粮食产量有所下降,下降了粮食总产量的0.6%,下降原因是国家宏观调控推进农业供给侧结构性改革主动调减的结果,对我国粮食安全无影响。
4、由图11分析总结,2020年粮食产量位居前三的分别为黑龙江省、河南省以及山东省。由于西部自然条件较差,很多地区都是缺水干旱,年降雨量少,平均气温低,无霜期和日照数都相对短,粮食种植业,生产条件低,再加上贫困原因,对农业投入严重不足导致农业抗灾防灾能力差,始终摆脱不了广种薄收、粗放经营、靠天吃饭的局面,所以,我国东部地区粮食产量普遍高于西部地区。因此,我们更要珍惜和合理利用每一寸土地,切实保护耕地,才能使我国粮食产量稳步增长。
5、通过图12-14中数据的分析以及国务院农村农业部发表的全国粮食产量分析年度报告可得,山东省的耕地面积占全省面积的比例在全国属前列,作为中国的储备量基地,它的粮食产量相比其他省份总体较高。据国务院农业农村部数据显示2020年全国各省食粮产量显示,前三位的省份是黑龙江(11.26%),河南省(10.20%),山东省(8.14%)据国家统计局显示,2020年,山东省粮食产量为5447万吨,同比增长1.6%。2016年之后,山东省粮食产量先减后增,2018年产量相比2017年显著下降,为5319.51万吨。山东省的粮食产量从最低年份的5320万吨增长到2020年的5447万吨,增加90万吨。2016年到2020年,山东省粮食产量持续高水平,平均在5320万吨以上,已经解决了省内乃至于全国范围内的粮食供给不足的局面。
6、由图12-14综合分析得到,山东省2018年粮食产量仅为5319万吨,相比2016年同比下降1.02%,究其所因是粮食播种面积的下降与农业效率的降低,另外农业农村部对农业进行供给侧改革,进行主动调减。据国家统计局统计,全国粮食播种面积1.17亿公顷,比2017年缩小95万公顷,环比下降0.8%。其中谷类面积0.99亿公顷,同比往年缩小0.1亿公顷,下降比率1.1%,虽然粮食单位面积产量相比去年增加0.2%,但是由于环境保护等需要,耕地面积下降的幅度大于单位面积增产的幅度,导致粮食产量稍有下降。另外根据DEA实证分析,山东省的产量综合效率仅为0.6655(数据来源:中国知网)低于平均值0.7070。究其原因,是由于农业种植结构调整优化,调减库存较多的稻谷和玉米种植,扩大大豆种植,因地制宜发展经济作物。
五、程序代码。
1 import requests 2 from bs4 import BeautifulSoup 3 import bs4 4 import csv 5 def getHTMLText(url): 6 try: 7 r = requests.get(url, timeout = 30) 8 r.raise_for_status() 9 r.encoding = r.apparent_encoding 10 return r.text 11 except: 12 return '爬取失败' 13 def fillUnivlist(ulist,html): 14 soup = BeautifulSoup(html,"html.parser") 15 for tr in soup.find('tbody').children: 16 if isinstance(tr,bs4.element.Tag): 17 tds = tr('td') 18 ulist.append([tds[0].text,tds[1].text,tds[2].text,tds[3].text,tds[4].text,tds[5].text]) 19 def printUnivList(ulist,num): 20 tplt="{0:8}\t{1:^8}\t{2:^8}\t{3:^8}\t{4:^8}\t{5:^8}" 21 for i in range(num): 22 u = ulist[i] 23 print(tplt.format(u[0],u[1],u[2],u[3],u[4],u[5])) 24 def writeUlistfile(ulist): 25 with open('Ulist1.csv','w',newline='') as fout: 26 writer = csv.writer(fout) 27 for row in ulist: 28 writer.writerow(row) 29 def main(): 30 url = 'https://www.chyxx.com/industry/202103/938485.html' 31 html = getHTMLText(url) 32 uinfo =[] 33 fillUnivlist(uinfo,html) 34 writeUlistfile(uinfo) 35 printUnivList(uinfo,32) 36 main() 37 ############ 38 import pandas as pd 39 import matplotlib. pyplot as plt 40 from matplotlib import rcParams 41 rcParams['font.family'] = 'simhei' #汉字显示的字体 42 sheet=pd.read_csv("C:\\Users\Qi520503\Desktop\mpython\\Ulist1.csv",encoding="GBK") 43 sheet_new=sheet[0:31]#数据太多,因此切片处理 44 sheet_new.plot.bar(x="地区",y=["2016年","2017年","2018年","2019年","2020年"], 45 color=["red", "blue", "yellow","green","orange"]) 46 plt. title('各地区粮食产量图', fontsize = 10, fontweight='bold') 47 plt. xlabel('地区', fontweight = 'bold') 48 plt. ylabel('粮食产量', fontweight = 'bold') 49 plt.hist(sheet['2020年'],bins=(50),color="green") 50 plt.title('2016-2020全国各地区粮食产量柱状图',fontsize=12,fontweight='bold') 51 plt.xlabel('地区',fontsize=12,fontweight='bold') 52 plt.ylabel('粮食产量/万吨',fontsize=12,fontweight='bold') 53 plt. show() 54 #################### 55 import pandas as pd 56 import matplotlib. pyplot as plt 57 from matplotlib import rcParams 58 rcParams['font.family'] = 'simhei' #汉字显示的字体 59 60 sheet=pd.read_csv("C:\\Users\Qi520503\Desktop\mpython\\Ulist3.csv",encoding="GBK") 61 sheet_new=sheet[0:100]#数据太多,因此切片处理 62 sheet_new.plot.bar(x="地区",y=["近五年总和"], color=["green"]) 63 plt. title('各地区粮食产量图', fontsize = 10, fontweight='bold') 64 plt. xlabel('地区', fontweight = 'bold') 65 plt. ylabel('粮食产量', fontweight = 'bold') 66 plt.hist(sheet['2020年'],bins=(50),color="green") 67 plt.title('2016-2020全国粮食产量排名前五名粮食产量总和图',fontsize=12,fontweight='bold') 68 plt.xlabel('地区',fontsize=12,fontweight='bold') 69 plt.ylabel('粮食产量/万吨',fontsize=12,fontweight='bold') 70 plt. show() 71 ####################### 72 import pandas as pd 73 import matplotlib. pyplot as plt 74 from matplotlib import rcParams 75 rcParams['font.family'] = 'simhei' #汉字显示的字体 76 sheet=pd.read_csv("C:\\Users\\Qi520503\\Desktop\\mpython\\Ulist1.csv",encoding="GBK") 77 sheet_new=sheet[14:15]#数据太多,因此切片处理 78 sheet_new.plot.bar(x="地区",y=["2016年","2017年","2018年","2019年","2020年"], 79 color=["red", "blue", "yellow","green","orange"]) 80 plt. title('各地区粮食产量图', fontsize = 10, fontweight='bold') 81 plt. xlabel('地区', fontweight = 'bold') 82 plt. ylabel('粮食产量', fontweight = 'bold') 83 plt.hist(sheet['2020年'],bins=(50),color="green") 84 plt.title('2016-2020山东省粮食产量柱状图',fontsize=12,fontweight='bold') 85 plt.xlabel('地区',fontsize=12,fontweight='bold') 86 plt.ylabel('粮食产量/万吨',fontsize=12,fontweight='bold') 87 plt. show() 88 ###################### 89 import pandas as pd 90 import matplotlib. pyplot as plt 91 from matplotlib import rcParams 92 rcParams['font.family'] = 'simhei' #汉字显示的字体 93 sheet=pd.read_csv("C:\\Users\\Qi520503\\Desktop\\mpython\\Ulist1.csv",encoding="GBK") 94 sheet_new=sheet[13:17]#数据太多,因此切片处理 95 sheet_new.plot.bar(x="地区",y=["2016年","2017年","2018年","2019年","2020年"], 96 color=["red", "blue", "yellow","green","orange"]) 97 plt. title('各地区粮食产量图', fontsize = 10, fontweight='bold') 98 plt. xlabel('地区', fontweight = 'bold') 99 plt. ylabel('粮食产量', fontweight = 'bold') 100 plt.hist(sheet['2020年'],bins=(50),color="green") 101 plt.title('2016-2020四省粮食产量柱状图',fontsize=12,fontweight='bold') 102 plt.xlabel('地区',fontsize=12,fontweight='bold') 103 plt.ylabel('粮食产量/万吨',fontsize=12,fontweight='bold') 104 plt. show() 105 ################### 106 import pandas as pd 107 import matplotlib.pyplot as plt 108 from matplotlib import rcParams 109 plt.figure(figsize=(15,10)) 110 rcParams ['font.family'] = 'simhei'#汉字显示的字体 111 df = pd.read_excel("C:\\Users\Qi520503\Desktop\mpython\\Ulist2.xlsx") 112 plt.legend(loc=2) #添加图例 113 plt.plot(df["年份"],df["北京市"],label='北京市',linewidth=1,color='g',marker='o', 114 markerfacecolor='blue',markersize=5) 115 plt.plot(df["年份"],df["天津市"],label='天津市',linewidth=1,color='r',marker='o', 116 markerfacecolor='green',markersize=6) 117 plt.plot(df["年份"],df["河北省"],label='河北省',linewidth=1,color='r',marker='o', 118 markerfacecolor='yellow',markersize=7) 119 plt.plot(df["年份"],df["山西省"],label='山西省',linewidth=1,color='g',marker='o', 120 markerfacecolor='red',markersize=8) 121 plt.plot(df["年份"],df["内蒙古自治区"],label='内蒙古自治区',linewidth=1,color='r',marker='o', 122 markerfacecolor='orange',markersize=5) 123 plt.plot(df["年份"],df["辽宁省"],label='辽宁省',linewidth=1,color='r',marker='o', 124 markerfacecolor='white',markersize=6) 125 plt.plot(df["年份"],df["吉林省"],label='吉林省',linewidth=1,color='g',marker='o', 126 markerfacecolor='pink',markersize=7) 127 plt.plot(df["年份"],df["黑龙江省"],label='黑龙江省',linewidth=1,color='r',marker='o', 128 markerfacecolor='black',markersize=8) 129 plt.plot(df["年份"],df["上海市"],label='上海市',linewidth=1,color='r',marker='o', 130 markerfacecolor='brown',markersize=5) 131 plt.plot(df["年份"],df["江苏省"],label='江苏省',linewidth=1,color='g',marker='o', 132 markerfacecolor='blue',markersize=6) 133 plt.plot(df["年份"],df["浙江省"],label='浙江省 ',linewidth=1,color='r',marker='o', 134 markerfacecolor='green',markersize=7) 135 plt.plot(df["年份"],df["安徽省"],label='安徽省',linewidth=1,color='r',marker='o', 136 markerfacecolor='yellow',markersize=8) 137 plt.plot(df["年份"],df["福建省"],label='福建省',linewidth=1,color='g',marker='o', 138 markerfacecolor='red',markersize=5) 139 plt.plot(df["年份"],df["江西省"],label='江西省',linewidth=1,color='r',marker='o', 140 markerfacecolor='orange',markersize=6) 141 plt.plot(df["年份"],df["山东省"],label='山东省',linewidth=1,color='r',marker='o', 142 markerfacecolor='white',markersize=7) 143 plt.plot(df["年份"],df["河南省"],label='河南省',linewidth=1,color='g',marker='o', 144 markerfacecolor='pink',markersize=8) 145 plt.plot(df["年份"],df["湖北省"],label='湖北省',linewidth=1,color='r',marker='o', 146 markerfacecolor='black',markersize=5) 147 plt.plot(df["年份"],df["湖南省"],label='湖南省',linewidth=1,color='r',marker='o', 148 markerfacecolor='brown',markersize=6) 149 plt.plot(df["年份"],df["广东省"],label='广东省',linewidth=1,color='r',marker='o', 150 markerfacecolor='blue',markersize=7) 151 plt.plot(df["年份"],df["广西壮族自治区"],label='广西壮族自治区',linewidth=1,color='r',marker='o', 152 markerfacecolor='green',markersize=8) 153 plt.plot(df["年份"],df["海南省"],label='海南省',linewidth=1,color='r',marker='o', 154 markerfacecolor='yellow',markersize=5) 155 plt.plot(df["年份"],df["重庆市"],label='重庆市',linewidth=1,color='r',marker='o', 156 markerfacecolor='red',markersize=6) 157 plt.plot(df["年份"],df["四川省"],label='四川省',linewidth=1,color='r',marker='o', 158 markerfacecolor='orange',markersize=7) 159 plt.plot(df["年份"],df["贵州省"],label='贵州省',linewidth=1,color='r',marker='o', 160 markerfacecolor='pink',markersize=8) 161 plt.plot(df["年份"],df["云南省"],label='云南省',linewidth=1,color='r',marker='o', 162 markerfacecolor='black',markersize=5) 163 plt.plot(df["年份"],df["西藏自治区"],label='西藏自治区',linewidth=1,color='r',marker='o', 164 markerfacecolor='brown',markersize=6) 165 plt.plot(df["年份"],df["陕西省"],label='陕西省',linewidth=1,color='r',marker='o', 166 markerfacecolor='blue',markersize=7) 167 plt.plot(df["年份"],df["甘肃省"],label='甘肃省',linewidth=1,color='r',marker='o', 168 markerfacecolor='green',markersize=8) 169 plt.plot(df["年份"],df["青海省"],label='青海省',linewidth=1,color='r',marker='o', 170 markerfacecolor='yellow',markersize=5) 171 plt.plot(df["年份"],df["宁夏回族自治区"],label='宁夏回族自治区',linewidth=1,color='r',marker='o', 172 markerfacecolor='red',markersize=6) 173 plt.plot(df["年份"],df["新疆维吾尔自治区"],label='新疆维吾尔自治区',linewidth=1,color='r',marker='o', 174 markerfacecolor='orange',markersize=7) 175 plt.xlabel("年份") 176 plt.ylabel('粮食产量/万吨') 177 plt.title("2016年-2020年各地区粮食产量折线图",fontsize = 30) 178 plt.legend(loc="best",fontsize = 8,markerscale=0.5,bbox_to_anchor=(1.05,1.0),borderaxespad = 0.) 179 plt.grid() 180 plt.show() 181 ############ 182 import pandas as pd 183 import matplotlib.pyplot as plt 184 from matplotlib import rcParams 185 rcParams ['font.family'] = 'simhei'#汉字显示的字体 186 df = pd.read_excel("C:\\Users\Qi520503\Desktop\mpython\\Ulist5.xlsx") 187 #plt.legend( labels = ['山东省'], loc = 7) 188 #添加图例 189 #plt.legend(labels = ['山东省'], loc='lower center') 190 #plt.legend(loc="right") # 与plt.legend(loc=1)等价 191 plt.plot(df["年份"],df["粮食总产量"],label='粮食总产量',linewidth=1,color='r',marker='o', 192 markerfacecolor='white',markersize=7) 193 plt.xlabel("年份") 194 plt.ylabel('粮食产量/万吨') 195 plt.title("2016年-2020年全国粮食总产量产量折线图") 196 plt.legend(loc="best",fontsize = 8,markerscale=0.5,bbox_to_anchor=(1.05,1.0),borderaxespad = 0.) 197 plt.grid() 198 plt.show() 199 ############# 200 import pandas as pd 201 import matplotlib.pyplot as plt 202 from matplotlib import rcParams 203 rcParams ['font.family'] = 'simhei' 204 #汉字显示的字体 205 df = pd.read_excel("C:\\Users\Qi520503\Desktop\mpython\\Ulist2.xlsx") 206 #plt.legend( labels = ['山东省'], loc = 7) #添加图例 207 #plt.legend(labels = ['山东省'], loc='lower center') 208 #plt.legend(loc="right") # 与plt.legend(loc=1)等价 209 plt.plot(df["年份"],df["山东省"],label='山东省',linewidth=1,color='r',marker='o', 210 markerfacecolor='white',markersize=7) 211 plt.xlabel("年份") 212 plt.ylabel('粮食产量/万吨') 213 plt.title("2016年-2020年山东省粮食产量折线图") 214 plt.legend(loc="best",fontsize = 8,markerscale=0.5,bbox_to_anchor=(1.05,1.0),borderaxespad = 0.) 215 plt.grid() 216 plt.show() 217 ############ 218 import pandas as pd 219 import matplotlib.pyplot as plt 220 from matplotlib import rcParams 221 plt.figure(figsize=(15,10)) 222 rcParams ['font.family'] = 'simhei' 223 #汉字显示的字体 224 df = pd.read_excel("C:\\Users\Qi520503\Desktop\mpython\\Ulist2.xlsx") 225 plt.legend(loc=3) #添加图例 226 plt.plot(df["年份"],df["黑龙江省"],label='黑龙江省',linewidth=1,color='r',marker='o', 227 markerfacecolor='red',markersize=6) 228 plt.plot(df["年份"],df["河南省"],label='河南省',linewidth=1,color='g',marker='o', 229 markerfacecolor='green',markersize=7) 230 plt.plot(df["年份"],df["山东省"],label='山东省',linewidth=1,color='b',marker='o', 231 markerfacecolor='blue',markersize=8) 232 plt.plot(df["年份"],df["安徽省"],label='安徽省',linewidth=1,color='y',marker='o', 233 markerfacecolor='yellow',markersize=6) 234 plt.plot(df["年份"],df["吉林省"],label='吉林省',linewidth=1,color='b',marker='o', 235 markerfacecolor='orange',markersize=7) 237 plt.xlabel("年份") 238 plt.ylabel('粮食产量/万吨') 239 plt.title("2016年-2020年五省粮食产量折线图",fontsize = 30) 240 plt.legend(loc="best",fontsize =20,markerscale=0.5,bbox_to_anchor=(1.15,1.0),borderaxespad = 1) 241 plt.grid() 242 plt.show() 243 ############ 244 import matplotlib.pyplot as plt 245 explode = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) 246 label = ['北京市','天津市','河北省','山西省','内蒙古自治区','辽宁省','吉林省', 247 '黑龙江省','上海市','江苏省','浙江省','安徽省','福建省', 248 '江西省','山东省','河南省','湖北省','湖南省','广东省','广西壮族自治区', 249 '海南省','重庆市','四川省','贵州省','云南省','西藏自治区', 250 '陕西省','甘肃省','青海省','宁夏回族自治区','新疆维吾尔自治区'] 251 data_list = [31,228,3796,1424,3664,2339,3803,7541,91,3729,606,4019,502,2164,5447,6826, 252 2727,3015,1268,1370,145,1081,3527,1058,1896,103,1275,1202,107,380,1583,] 253 fig = plt.figure() 254 ax = fig.add_subplot() 255 ax.pie(data_list, explode=explode, labels=label, autopct='%1.2f%%') 256 plt.title('2020年各地区粮食产量占比饼状图') 257 #绘制标题 258 plt.show() 259 ################ 260 import matplotlib.pyplot as plt 261 explode = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) 262 label = ['北京市','天津市','河北省','山西省','内蒙古自治区','辽宁省','吉林省', 263 '黑龙江省','上海市','江苏省','浙江省','安徽省','福建省', 264 '江西省','山东省','河南省','湖北省','湖南省','广东省','广西壮族自治区', 265 '海南省','重庆市','四川省','贵州省','云南省','西藏自治区', 266 '陕西省','甘肃省','青海省','宁夏回族自治区','新疆维吾尔自治区'] 267 data_list = [31,228,3796,1424,3664,2339,3803,7541,91,3729,606,4019,502,2164,5447,6826, 268 2727,3015,1268,1370,145,1081,3527,1058,1896,103,1275,1202,107,380,1583,] 269 fig = plt.figure() 270 ax = fig.add_subplot() 271 ax.pie(data_list, explode=explode, labels=label, autopct='%1.2f%%') 272 plt.title('2020年各地区粮食产量占比饼状图') 273 #绘制标题 274 plt.show() 275 ############## 276 import matplotlib.pyplot as plt 277 explode = (0,0) 278 label = ['黑龙江、河南、山东、吉林、安徽','其他地区',] 279 data_list = [27636,39311,] 280 fig = plt.figure() 281 ax = fig.add_subplot() 282 ax.pie(data_list, explode=explode, labels=label, autopct='%1.2f%%') 283 plt.title('2020年五省占全国粮食总产量饼状图') 284 285 plt.show() 286 ################## 287 from pyecharts import Map 288 province_distribution = {'北京':[31], '天津': 228, '河北':3796, '山西':1424 , '内蒙古': 3664, '辽宁':2339, 289 '吉林':3803, '黑龙江':7541, '上海': 91, '江苏':3729,'浙江':606, '安徽':4019, 290 '福建':502, '江西':2164,'山东':5447,'河南':6826,'湖北':2727, '湖南':3015, 291 '广东':1268, '广西':1370, '海南':145, '重庆':1081, '四川':3527, '贵州':1058, '云南':1896, 292 '西藏':103,'陕西': 1275,'甘肃':1202,'青海':107,'宁夏': 380,'新疆':1583,} 293 provice = list(province_distribution.keys()) 294 values = list(province_distribution.values()) 295 map = Map("全国各地区2020年粮食产量地图/(单位:万吨)(注:图中统计数据无我国台湾、香港、澳门地区)",width=1200, height=800) 296 map.add("", provice, values, visual_range=[0, 5000], maptype='china', is_visualmap=True, 297 visual_text_color='#000',is_label_show=True) 298 map.render(path="全国各地区2020年粮食产量地图.html") 299 ############## 300 from pyecharts import Map 301 province_distribution = {'黑龙江':37377.28, '河南':33192.53,'山东':26830.1,'吉林':19618.37,'安徽':20061.72,} 302 provice = list(province_distribution.keys()) 303 values = list(province_distribution.values()) 304 map = Map("2016-2020年全国粮食总产量前五地区在全国的分布地图",width=1200, height=600) 305 map.add("",provice, values, visual_range=[15000,30000], maptype='china', is_visualmap=True, 306 visual_text_color='#000',is_label_show=True) 307 map.render(path="2016-2020年全国粮食总产量前五地区在全国的分布地图.html")
五、总结
经过对python的学习,收获颇多。从最开始对计算机的基础知识的学习,让我了解了计算机的最基本原理。接着学习了基本的python语言的编程和练习,让我感受到与其它编程语言相比python语言的简洁直观,比如,列表,字典,函数等。最重要的对python中部分库的了解和学习,学会了利用python对网页数据的获取、数据处理、数据分析、数据可视化,让我感到python工具的实用性。在学习过程中遇到了大大小小的问题,通过我的独立思考和各种资料的查找,问题一一解决,让我发现学习大学计算机的乐趣。在以后的学习中,我会利用学习到的知识对生活中和学习中需要数据处理的问题进行数据可视化处理。对python的学习还不是很全面,我还会不断学习和练习python语言,提升个人的编程能力。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示