本课题是对中国近两年各个省份GDP值的研究分析。在过去的2020,2021年中,由于疫情的影响,我国的经济发展遭受了严重的阻力,国民收入减少导致在外各个行业都不景气。通过该数据分析可以研究各个省份的GDP指标是有取得发展还是停滞不前。以及可以研究得出我国经济发达的省份分布在哪里,未来将要重点进行经济建设的省份是那些。
要达到的数据分析目标是:通过数据分析对比,可以研究得出结论在疫情影响下哪些省份的经济发展受到的影响比较大,以及全国各个省份在这两年经济是退步还是停滞不前还是有一定的发展。通过数据的分析可视化也可以让我们判断出接下去随着国家政策的改变,全国各个省份的经济发展的前景如何。未来将要重点进行经济建设的省份是那些。
该数据是2020年,2021年两年的全国各个省份的GDP值。该数据集是在国家经济网上获取。
- 说明本数据集的数据内容。
该数据集包含了2020年,2021年的GDP值以及两年间的实际增长量
- 说明数据处理的过程。
前期对数据的处理是判断是否有空值,是否有重复值以及对数据进行排序
- 说明数据可视化分析的过程。
- 折线图:该图采用的数据是2020,2021两年的各个省份GDP数值来画图。由图呈现来看可得出结论沿海地区2021年GDP相较于2020年有所提高,但是对于西部地区省区经济水平基本保持前一年水平。也可以得出结论:总体来说全国GDp还是有取得发展,但是缺陷是地区发展十分不均衡,未来经济发展重点还要向西北地区靠近。
def function1():
try:
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
dataset = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
# print(dataset)
x1 = dataset['省区']
y1 = dataset['2021年GDP']
y2 = dataset['2020年GDP']
#print(x1)
plt.xlabel("省区")
plt.ylabel("GDP 单位(亿元)")
plt.title("2020,2021国内GDP")
plt.plot(x1, y1, marker="o", color="red",label="2021")
plt.plot(x1,y2,marker="o",color="blue",label="2020")
plt.legend()
plt.grid()
plt.show()
except:
print("绘图完毕!")
- 对比柱状图。该图采用的数据是2020,2021两年的各个省份GDP数值来画图。也是可以得出越靠近沿海地区,经济越发达的城市省份经济受到疫情影响越小。沿海地区依旧以稳定的速度在增长而西部地区基本与上一年持平或者有较小的增长
def function6():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x1 = df['省区'].values.tolist()
y1 = df['2020年GDP'].values.tolist()
y2 = df['2021年GDP'].values.tolist()
x = list(range(len(x1)))
total_width, n = 0.5, 2 # 设置间距
width = total_width / n
for i in range(len(x)): # 柱状图1(确诊人数)
x[i] += width
plt.bar(x, y1, width=width, label='2020年GDP', tick_label=x1, color='#FF3030')
for i in range(len(x)): # 柱状图2(单日新增)
x[i] += width
plt.bar(x, y2, width=width, label='2021年GDP', color='blue')
plt.title("近两年全国各个省份GDP对比") # 标题
plt.ylabel("GDP值(亿元)", fontsize=12) # y轴标签
plt.legend(loc='upper right', fontsize=12) # 图例
plt.show()
except:
print("画图失败!")
- 棉棒图。该图采用的数据是省份,2021年与2020年对比GDP的增量值
该图可以得出结论,广东,山东,江苏,浙江福建等等沿海省份的GDP增量值比较大。相比之下分布在东北,西北以及西藏等地区的省份GDP增量小,可能是疫情影响,也可能是产业结构发生变化。
def function4():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
labels = df['省区'].values.tolist()
x = np.arange(1, 32)
#x = df['2021年GDP']
y = df['名义增量'].values.tolist()
fig = plt.figure(figsize=(15, 8), dpi=100)
ax = fig.add_subplot(111)
# 绘制棉棒图
markerline, stemlines, baseline = plt.stem(x, y, linefmt='<', markerfmt='^', basefmt='-', label='GDP',
use_line_collection=True)
plt.setp(markerline, color='r')
ax.set_title("中国各省2021年GDP增量棉棒图")
ax.set_ylabel("GDP增量")
ax.set_xlabel("省区")
ax.set_xticks(x)
ax.set_xticklabels(labels, rotation=60)
# for i, j in zip(x, y):
# plt.text(i, j + 1000, str(j), ha='center', fontsize=12, color='orange')
plt.legend()
plt.show()
print("中国各省GDP棉棒图OK!")
except:
print("中国各省GDP棉棒图ERROR!")
- 柱状图:2021年全国各个省份GDP数据。该图可以得出的结论是全国各个省份经济水平由东南沿海向西北方向一路递减,且经济水平差距十分巨大,通过该图进行分析可以得出结论,祖国沿海省份城市经济发展速度以及前景十分喜人,相反西部山区省份发展较慢。总体得出祖国经济发展不均衡。
def function3():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
fig = plt.figure(figsize=(15, 8))
program = df['省区'].iloc[0:].values
# print(program)
x = range(len(program))
y = df['2021年GDP'].iloc[0:].values
plt.bar(x, y, width=0.5, align='center', color='red')
plt.xticks(x, program,rotation=60)
plt.xlabel('地区')
plt.ylabel('GDP指标')
plt.title("全国各省GDP(亿元)")
# for i in range(len(program)):
# plt.text(i, y[i], y[i])
plt.show()
print("各省GDP柱状图OK!")
except:
print("各省GDP柱状图OK!")
- 中国地图:数据集是2021年全国各个省份GDP值,直接将各个省份数据绘制成地图形式,鼠标移动到哪个省份,他的GDP值就会显示出来,颜色越深表示该地区GDP值越高,从这来看GDP值也是东到西逐步递减
def function2():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
x = df['省区'].values.tolist()
y = df['2021年GDP'].values.tolist()
pieces = [
{"max":10000000, "min": 10000, "label": ">10000", "color": "#990000"}, #自定义区间分布,颜色
{"max": 10000, "min": 3000, "label": "3000-10000", "color": "#B40404"},
{"max": 3000, "min": 1000, "label": "1000-3000", "color": "#DF0101"},
{"max": 1000, "min": 100, "label": "100-1000", "color": "#F78181"},
{"max": 100, "min": 10, "label": "10-100", "color": "#F5A9A9"},
{"max": 10, "min": 0, "label": "<10", "color": "#FFFFCC"},
]
china_map = (
Map()
.add('', [list(i) for i in zip(x, y)], 'china')
.set_global_opts(
title_opts=opts.TitleOpts(title='全国各个省份GDP值'),
visualmap_opts=opts.VisualMapOpts(max_=100000000, is_piecewise=True, pieces=pieces)
)
)
china_map.render_notebook()
china_map.render('全国各省GDP.html')
china_map.render()
print("全国各省GDP OK!")
except:
print("全国各省GDP")
- 绘制词云图:采用的是数据集里地区数据,绘制了包含了哪些省份信息
#绘制单日新增省份词云图
def function5():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
frequence1 = {}
frequence2={}
for row in df.values:
# print(row)
if row[0] == "省区": # 除去首行标签
pass
else:
#单日新增人数
frequence1[row[1]] = row[2]
#现有确诊人数
frequence2[row[1]]=float(row[3])
# 设置词云字体和尺寸
wordcloud1 = WordCloud(font_path="C:/Windows/Fonts/STXINGKA.TTF",
background_color="white",
width=1920, height=1080)
wordcloud1.generate_from_frequencies(frequence1)
wordcloud1.to_file("2020.png")
wordcloud2=WordCloud(font_path="C:/Windows/Fonts/STCAIYUN.TTF",
background_color="PaleTurquoise",
width=2000,height=1200)
wordcloud2.generate_from_frequencies(frequence2)
wordcloud2.to_file("2021.png")
print("词云图OK!")
except:
print("词云图ERROR!")
要求:
1.数据集的分析结果用可视化的图表示,并且要对每张图表做详细合理的说明,采用数据集的哪些数据生成图表,说明图表呈现的数据分布情况。如果图表可以预测出未来的发展趋势,也需进行说明。
2.第8章中的高级图表至少要用1种。
3.每张图表要有标题、图例、X/Y轴要设置标签;图表中的字体大小、颜色搭配要合理;图表元素布局要合理。
三、总结
通过数据集画图对图表的可视化分析我们可以清晰地看到全国各个省份城市近两年的GDP值。
通过研究对比可以明显看出1.中西部省份城市经济发展更加容易受到疫情的影响而东南沿海城市省份的经济受到的影响较小。2.近两年来,通过折线图,柱状图以及中国地图GDP从东南沿海城市向内陆省份城市GDP增量呈现递减状态 3.总体来说疫情对经济发达地区经济的发展影响不大,而经济较为落后地区收到的影响较大。4.未来国家重点发展目标:加大对中西部省份经济发展的扶持力度,尽量减小与东南沿海省份之间的差距。
from pandas import read_csv, read_excel
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from pyecharts.charts import Map #绘制地图
from pyecharts.charts import Geo
from pyecharts import options as opts
# # ChartType:图标类型,SymbolType:标记点类型
from pyecharts.globals import ChartType, SymbolType
#数据清洗模块
def function0():
# print(df.head())
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
d1=df.describe() #查看平均值
# print(d1)
d2=df.isnull().value_counts() #判断是否有重复值
# print(d2)
d3=df.duplicated() # 查看是否有重复行
# print(d3)
d4=df.sort_values(by='2021年GDP', ascending=False) #对数据重新进行排序
return d4
print("数据清洗完毕!")
def function1():
try:
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
dataset = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
# print(dataset)
x1 = dataset['省区']
y1 = dataset['2021年GDP']
y2 = dataset['2020年GDP']
#print(x1)
plt.xlabel("省区")
plt.ylabel("GDP 单位(亿元)")
plt.title("2020,2021国内GDP")
plt.plot(x1, y1, marker="o", color="red",label="2021")
plt.plot(x1,y2,marker="o",color="blue",label="2020")
plt.legend()
plt.grid()
plt.show()
except:
print("绘图完毕!")
def function2():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
x = df['省区'].values.tolist()
y = df['2021年GDP'].values.tolist()
pieces = [
{"max":10000000, "min": 10000, "label": ">10000", "color": "#990000"}, #自定义区间分布,颜色
{"max": 10000, "min": 3000, "label": "3000-10000", "color": "#B40404"},
{"max": 3000, "min": 1000, "label": "1000-3000", "color": "#DF0101"},
{"max": 1000, "min": 100, "label": "100-1000", "color": "#F78181"},
{"max": 100, "min": 10, "label": "10-100", "color": "#F5A9A9"},
{"max": 10, "min": 0, "label": "<10", "color": "#FFFFCC"},
]
china_map = (
Map()
.add('', [list(i) for i in zip(x, y)], 'china')
.set_global_opts(
title_opts=opts.TitleOpts(title='全国各个省份GDP值'),
visualmap_opts=opts.VisualMapOpts(max_=100000000, is_piecewise=True, pieces=pieces)
)
)
china_map.render_notebook()
china_map.render('全国各省GDP.html')
china_map.render()
print("全国各省GDP OK!")
except:
print("全国各省GDP")
# 绘制柱状图
def function3():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
fig = plt.figure(figsize=(15, 8))
program = df['省区'].iloc[0:].values
# print(program)
x = range(len(program))
y = df['2021年GDP'].iloc[0:].values
plt.bar(x, y, width=0.5, align='center', color='red')
plt.xticks(x, program,rotation=60)
plt.xlabel('地区')
plt.ylabel('GDP指标')
plt.title("全国各省GDP(亿元)")
# for i in range(len(program)):
# plt.text(i, y[i], y[i])
plt.show()
print("各省GDP柱状图OK!")
except:
print("各省GDP柱状图OK!")
#绘制棉棒图
def function4():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
labels = df['省区'].values.tolist()
x = np.arange(1, 32)
#x = df['2021年GDP']
y = df['名义增量'].values.tolist()
fig = plt.figure(figsize=(15, 8), dpi=100)
ax = fig.add_subplot(111)
# 绘制棉棒图
markerline, stemlines, baseline = plt.stem(x, y, linefmt='<', markerfmt='^', basefmt='-', label='GDP',
use_line_collection=True)
plt.setp(markerline, color='r')
ax.set_title("中国各省2021年GDP增量棉棒图")
ax.set_ylabel("GDP增量")
ax.set_xlabel("省区")
ax.set_xticks(x)
ax.set_xticklabels(labels, rotation=60)
# for i, j in zip(x, y):
# plt.text(i, j + 1000, str(j), ha='center', fontsize=12, color='orange')
plt.legend()
plt.show()
print("中国各省GDP棉棒图OK!")
except:
print("中国各省GDP棉棒图ERROR!")
#绘制单日新增省份词云图
def function5():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
frequence1 = {}
frequence2={}
for row in df.values:
# print(row)
if row[0] == "省区": # 除去首行标签
pass
else:
#单日新增人数
frequence1[row[1]] = row[2]
#现有确诊人数
frequence2[row[1]]=float(row[3])
# 设置词云字体和尺寸
wordcloud1 = WordCloud(font_path="C:/Windows/Fonts/STXINGKA.TTF",
background_color="white",
width=1920, height=1080)
wordcloud1.generate_from_frequencies(frequence1)
wordcloud1.to_file("2020.png")
wordcloud2=WordCloud(font_path="C:/Windows/Fonts/STCAIYUN.TTF",
background_color="PaleTurquoise",
width=2000,height=1200)
wordcloud2.generate_from_frequencies(frequence2)
wordcloud2.to_file("2021.png")
print("词云图OK!")
except:
print("词云图ERROR!")
def function6():
try:
df = pd.read_excel('E:\\文档\\2021国内GDP.xlsx')
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x1 = df['省区'].values.tolist()
y1 = df['2020年GDP'].values.tolist()
y2 = df['2021年GDP'].values.tolist()
x = list(range(len(x1)))
total_width, n = 0.5, 2 # 设置间距
width = total_width / n
for i in range(len(x)): # 柱状图1(确诊人数)
x[i] += width
plt.bar(x, y1, width=width, label='2020年GDP', tick_label=x1, color='#FF3030')
for i in range(len(x)): # 柱状图2(单日新增)
x[i] += width
plt.bar(x, y2, width=width, label='2021年GDP', color='blue')
plt.title("近两年全国各个省份GDP对比") # 标题
plt.ylabel("GDP值(亿元)", fontsize=12) # y轴标签
plt.legend(loc='upper right', fontsize=12) # 图例
plt.show()
except:
print("画图失败!")
def main():
#function0()
function1()
function2()
function3()
function4()
function5()
function6()
print("绘图完毕!")
if __name__ == '__main__':
main()
标签:GDP,数据分析,plt,df,color,近两年,2021,print From: https://www.cnblogs.com/1164932942lzt/p/17003797.html