对粮食产量进行大数据分析

一、选题背景

  近年来,我国各个省份的粮食总产量以及增量增速逐渐倍受关注,如何增加粮食产量也成为了人们关注的热点话题。通过互联网上的信息发布网站,我获取并整合了各省粮食产量数据。其中,“中国产业信息网”每年发布的国内新一年的粮食产量信息。网站发布的信息包括近些年的粮食产量、占比、走势、播种面积等。本文章的目标是用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所示)

 

 

 

 

 

 

 
图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  各地区粮食产量折线图

9.统计山东省粮食产量,粮食产量绘制饼状图(如图10所示)。绘制折线图(如图11所示)。绘制柱状图(如图12所示)。

 

 

 

 

图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语言,提升个人的编程能力。

 

posted @   agreeee  阅读(450)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示