python数据可视化任务教程郑丹青习题答案_第1页
python数据可视化任务教程郑丹青习题答案_第2页
python数据可视化任务教程郑丹青习题答案_第3页
python数据可视化任务教程郑丹青习题答案_第4页
python数据可视化任务教程郑丹青习题答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元1认识数据可视化运用Excel电子表格软件的图表处理功能,根据原油产量.xlsx表中数据,完成下列数据可视化的操作。操作步骤可参考拓展任务。实现石油净进口量用柱形图表示、进口依存度用折线图表示的合成图表。(2)实现原油产量和石油净进口量均用柱形图表示的合成图表。单元2Python开发环境及常用数据处理操作编程题第一题的源代码如下:importpandasaspd

#导入数据

df=pd.read_csv('d:/dataset/广播电视情况.csv',encoding='gbk')

print(df)

#获取2013-2017年的年份数据

df1=df.iloc[1:2,[8,7,6,5,4]]

year=list(df1)

print(year)

#获取2013-2017年的电视剧播出集数(万集)和进口电视剧播出集数(万集)的数据

df1=df.iloc[18:20,[8,7,6,5,4]]

print(df1)

data1=list(df1.iloc[0])

print(data1)第二题的源代码如下:importpandasaspd

#导入数据

df=pd.read_csv('d:/dataset/广播电视情况.csv',encoding='gbk')

print(df)

#获取2014-2018年的年份数据

df1=df.iloc[1:2,[7,6,5,4,3]]

year=list(df1)

print(year)

#获取2014-2018年的全国电影综合收入(亿元)和电视播映收入(亿元)的数据

df1=df.iloc[29:35:5,[7,6,5,4,3]]

print(df1)

data1=list(df1.iloc[0])

print(data1)单元3数据可视化—图表的基本类型1.填空题(1)类别比较型图表、数据关系型图表、数据分布型图表、时间序列型图表、局部整体型图表、地理空间型图表。(2)柱形图、条形图、雷达图。(3)局部组成成分、整体(4)时序、数值型(5)精准位置、地理分布2.选择题(1)B.局部整体(2)C.数据关系(3)A.0(4)D.时间序列单元4Matplotlib数据可视化1.填空题(1)pyplot,基础类元素和容器类元素。(2)容器类,基础类(3)颜色、点样式和线样式(4)text()、annotate()、grid()(5)legend()、title()和suptitle()、show()2.选择题(1)B.Axis(2)B.scattor()(3)D.plot()(4)C.pie()(5)A.bar()(6)C.bottom(7)A.where(8)B.startangle3.编程题数据集“私人汽车拥有量.xls”处理先将数据集中第一行“数据库:年度数据”删除。(1)源代码如下:importpandasaspd

importnumpyasnp

importxlrd

importmatplotlib.pyplotasplt

#导入数据

df=pd.read_excel('d:/dataset/私人汽车拥有量.xls',header=1)

print(df)

#设置2015-2019年的年份数据

year0=list([2015,2016,2017,2018,2019])

year1=[float(x+0.3)forxinyear0]

year2=[float(x+0.6)forxinyear0]

print(year1)

#获取2015-2019年的私人载客汽车拥有量、私人载货汽车拥有量和私人其他汽车拥有量的数据

data=df.iloc[1:12:5,[6,5,4,3,2]]

print(data)

data1=list(data.iloc[0])

data2=list(data.iloc[1])

data3=list(data.iloc[2])

print(data1)

print(data2)

print(data3)

#设置matplotlib正常显示中文和负号

plt.rcParams['font.sans-serif']=['SimHei']#用黑体显示中文

plt.rcParams['axes.unicode_minus']=False#正常显示负号

#创建一个绘图对象,并设置对象的宽度和高度

fig=plt.figure(figsize=(8,6))

#绘制私人载客汽车拥有量柱形图

plt.bar(year0,data1,width=0.3,color='red',edgecolor='white')

#绘制私人载货汽车拥有量柱形图

plt.bar(year1,data2,width=0.3,color='green',edgecolor='white')

#绘制私人其他汽车拥有量柱形图

plt.bar(year2,data3,width=0.3,color='blue',edgecolor='white')

#为图进行文本设置

X=year0

Y1=data1

forx,yinzip(X,Y1):

plt.text(x+0.2,y+0.1,'%.2f'%y,ha='center')

Y2=data2

forx,yinzip(X,Y2):

plt.text(x+0.4,y+0.3,'%.2f'%y,ha='center')

Y3=data3

forx,yinzip(X,Y3):

plt.text(x+0.6,y+0.05,'%.2f'%y,ha='center')

plt.xlabel('年份')#显示x轴标签

plt.ylabel('私人汽车拥有量')#显示y轴标签

plt.ylim(10,22000)#y轴取值范围

#设置x轴刻度

new_tick=np.array([iforiinrange(2015,2020)])

plt.xticks(new_tick)

#设置标题

plt.suptitle("2015—2019年私人汽车拥有量情况")

plt.title("单位:万辆",fontsize=10,loc='right')

#添加脚注

fig.text(0.1,0.02,s="数据来源:国家统计局")

#添加图例

plt.legend(['载客汽车拥有量','载货汽车拥有量','其他汽车拥有量'],loc='center')

plt.savefig('d:/image/test4-1.png')

plt.show()(2)源代码如下:importpandasaspd

importxlrd

importmatplotlib.pyplotasplt

#导入数据

df=pd.read_excel('d:/dataset/私人汽车拥有量.xls',header=1)

print(df)

#获取数据

df1=df.iloc[2:6,[0,2]]

#按大小的降序排列

data1=df1.sort_values(by='2019年',ascending=False)

#获取数据转换成列表

data=list(data1['2019年'])

#获取指标,转换成列表,并定义为饼图的标签

label=list(data1['指标'])

print(data1)

print(label)

print(data)

#设置Matplotlib正常显示中文和负号

plt.rcParams['font.sans-serif']=['SimHei']#用黑体显示中文

plt.rcParams['axes.unicode_minus']=False#正常显示负号

#创建一个绘图对象

fig=plt.figure(figsize=(8,6),dpi=100)

#设定各项距离圆心的半径

explode=[0.01,0.1,0.2,0.3]

#绘制饼图(数据、半径、标签、饼图起始点旋转的角度、百分数保留两位小数)

plt.pie(data,explode=explode,labels=label,

startangle=-90,autopct='%0.2f%%')

#添加主标题

plt.suptitle("2019年我国私人大、中、小和微型载客汽车拥有量所占比例情况")

#添加脚注

fig.text(0.1,0.02,s="数据来源:国家统计局")

#添加图例

plt.legend(loc='center')

plt.savefig('d:/image/test4-2.png')

plt.show()(3)源代码如下:importpandasaspd

importnumpyasnp

importxlrd

importmatplotlib.pyplotasplt

#导入数据

df=pd.read_excel('d:/dataset/私人汽车拥有量.xls',header=1)

print(df)

#设置2015-2019年的年份数据

year0=list([2015,2016,2017,2018,2019])

#获取2015-2019年的私人载客汽车拥有量、私人载货汽车拥有量和私人其他汽车拥有量的数据

data=df.iloc[1:12:5,[6,5,4,3,2]]

print(data)

data1=list(data.iloc[0])

data2=list(data.iloc[1])

data3=list(data.iloc[2])

print(data1)

print(data2)

print(data3)

#设置matplotlib正常显示中文和负号

plt.rcParams['font.sans-serif']=['SimHei']#用黑体显示中文

plt.rcParams['axes.unicode_minus']=False#正常显示负号

#创建一个绘图对象,并设置对象的宽度和高度

fig=plt.figure(figsize=(8,6))

#绘制私人载客汽车拥有量折线图

plt.plot(year0,data1,"r-")

#绘制私人载货汽车拥有量折线图

plt.plot(year0,data2,"g--")

#绘制私人其他汽车拥有量折线图

plt.plot(year0,data3,"b-.")

plt.xlabel('年份')#显示x轴标签

plt.ylabel('私人汽车拥有量')#显示y轴标签

plt.ylim(10,22000)#y轴取值范围

#设置x轴刻度

new_tick=np.array([iforiinrange(2015,2020)])

plt.xticks(new_tick)

#设置标题

plt.suptitle("2015—2019年私人汽车拥有量情况")

plt.title("单位:万辆",fontsize=10,loc='right')

#添加脚注

fig.text(0.1,0.02,s="数据来源:国家统计局")

#添加图例

plt.legend(['载客汽车拥有量','载货汽车拥有量','其他汽车拥有量'],loc='center')

plt.savefig('d:/image/test4-3.png')

plt.show()单元5Seaborn数据可视化1.填空题(1)API封装(2)调色板(3)set_style()和axes_style()(4)set_context()(5)despine()2.选择题(1)B.color_palette()(2)A.lineplot()(3)E.displot()(4)C.violinplot()(5)B.barplot()(6)D.pairplot()单元6pyecharts数据可视化1.填空题(1)全局配置项和系列配置项(2)set_global_opts()(3)options(4)初始化配置项、标题配置项、图例配置项、工具箱配置项、视觉映射配置项、提示框配置项、区域缩放配置项、坐标轴配置项(5)TitleOpts()(6)系列(7)bar_width2.选择题(1)B.Line()(2)A.Bar()(3)D.Funnel()(4)E.Gauge()(5)C.Radar()3.编程题(1)源代码如下:frompyechartsimportoptionsasopts

frompyecharts.chartsimportBar

importpandasaspd

importxlrd

#导入数据

df=pd.read_excel('d:/dataset/私人汽车拥有量.xls',header=1)

print(df)

#设置2015-2019年的年份数据

lable=['2015年','2016年','2017年','2018年','2019年']

#获取2015-2019年的私人载客汽车拥有量、私人载货汽车拥有量的数据

data=df.iloc[1:12:5,[6,5,4,3,2]]

print(data)

data1=list(data.iloc[0])

data2=list(data.iloc[1])

print(data1)

print(data2)

#绘制多数据系列柱状图

c=(

Bar()

.add_xaxis(lable)

.add_yaxis("私人载客汽车拥有量",data1)

.add_yaxis("私人载货汽车拥有量",data2)

.set_global_opts(#标题配置项

title_opts=opts.TitleOpts(

title="2015—2019年私人汽车拥有量情况",

subtitle="单位:万辆"),

#添加脚注

graphic_opts=opts.GraphicGroup(

graphic_item=opts.GraphicItem(left='12%',bottom='0%'),

children=[

opts.GraphicText(graphic_textstyle_opts=

opts.GraphicTextStyleOpts(text='数据来源:国家统计局',

font="14pxMicrosoftYaHei")

)]

),

#图例配置项

legend_opts=opts.LegendOpts(orient='vertical'),

#x坐标轴配置项

xaxis_opts=opts.AxisOpts(name='年份'),

#y坐标轴配置项

yaxis_opts=opts.AxisOpts(name='私人汽车拥有量',

name_gap=4)

)

.render("d:/html/test6-1.html")

)源代码如下:frompyechartsimportoptionsasopts

frompyecharts.chartsimportPie

importpandasaspd

importxlrd

#导入数据

df=pd.read_excel('d:/dataset/私人汽车拥有量.xls',header=1)

print(df)

#获取数据

df1=df.iloc[7:11,[0,2]]

#按大小的降序排列

data1=df1.sort_values(by='2019年',ascending=False)

#获取数据转换成列表

data2=list(data1['2019年'])

print(data2)

#计算私人载货汽车拥有量和

df2=sum(data2)

print(df2)

#计算私人载货汽车拥有量占比

y_data=[round(x/df2*100,3)forxindata2]

#获取指标,转换成列表,并定义为饼图的标签

data3=list(data1['指标'])

x_data=[x.replace('(万辆)','占比')forxindata3]

print(x_data)

print(y_data)

#生成系列数据项

data=[[x_data[i],y_data[i]]foriinrange(len(x_data))]

print(data)

#绘制饼图

pie=(

Pie(init_opts=opts.InitOpts(width="800px"))#设置图表大小

.add("",data,is_clockwise=True)#设置饼图扇区顺时针排布

.set_global_opts(title_opts=opts.TitleOpts(

title="2019年我国私人重型、中型、轻型和微型载货汽车拥有量所占比例",

subtitle="单位:%"),

#添加脚注

graphic_opts=opts.GraphicGroup(

graphic_item=opts.GraphicItem(left='12%',bottom='0%'),

children=[

opts.GraphicText(graphic_textstyle_opts=

opts.GraphicTextStyleOpts(

text='数据来源:国家统计局',

font="14pxMicrosoftYaHei")

)]

),

#设置图例

legend_opts=opts.LegendOpts(

pos_right="right",

orient="vertical")

)

.set_series_opts(label_opts=opts.LabelOpts(

formatter="{b}:{c}%")

)

.render("d:/html/test6-2.html")

)源代码如下:frompyechartsimportoptionsasopts

frompyecharts.chartsimportBar

importpandasaspd

importxlrd

#导入数据

df=pd.read_excel('d:/dataset/私人汽车拥有量.xls',header=1)

print(df)

#设置2015-2019年的年份数据

lable=['2015年','2016年','2017年','2018年','2019年']

#获取2015-2019年的私人载客汽车拥有量、私人载货汽车拥有量和私人其他汽车拥有量的数据

data=df.iloc[1:12:5,[6,5,4,3,2]]

print(data)

data1=list(data.iloc[0])

data2=list(data.iloc[1])

data3=list(data.iloc[2])

print(data1)

print(data2)

print(data3)

#绘制堆叠柱形图

bar=(

Bar()

.add_xaxis(lable)

.add_yaxis("私人载客汽车拥有量",data1,stack="stack1",bar_width=40)

.add_yaxis("私人载货汽车拥有量",data2,stack="stack1",bar_width=40)

.add_yaxis("私人其他汽车拥有量",data3,stack="stack1",bar_width=40)

#标签配置项:在右边显示标签

.set_series_opts(

label_opts=opts.LabelOpts(is_show=True,position="right"))

.set_global_opts(

#设置标题

title_opts=opts.TitleOpts(

title="2015-2019年的私人汽车拥有量",

subtitle="单位:万辆",

pos_left='center'),

#添加脚注

graphic_opts=opts.GraphicGroup(

graphic_item=opts.GraphicItem(left='10%',bottom='0%'),

children=[

opts.GraphicText(graphic_textstyle_opts=

opts.GraphicTextStyleOpts(text='数据来源:国家统计局',

font="14pxMicrosoftYaHei")

)]

),

#设置图例

legend_opts=opts.LegendOpts(pos_right='10%',

pos_top='5%',

orient='vertical'),

yaxis_opts=opts.AxisOpts(name='私人汽车拥有量'),

xaxis_opts=opts.AxisOpts(name='年份')

)

.render("d:/html/test6-3.html"))单元7国民经济和社会发展统计数据可视化1.填空题(1)B.overlap(A)(2)Timeline(3)内半径和外半径两项数值。(4)stack2.编程题(1)源代码如下:frompyechartsimportoptionsasopts

frompyecharts.chartsimportTimeline,Bar,Pie

importpandasaspd

importxlrd

#导入数据

df=pd.read_excel('d:/dataset/我国各类运输'

'方式旅客周转量情况.xls',

header=1)

#获取数据

df1=df.iloc[5:]

print(df1)

lable=list(df1['年份'])

data0=list(df1['旅客周转量总计'])

data1=list(df1['铁路'])

data2=list(df1['公路'])

data3=list(df1['水运'])

data4=list(df1['民航'])

print(lable)

print(data0)

print(data1)

rate1=list(round(df1['铁路']/df1['旅客周转量总计']*100,2))

rate2=list(round(df1['公路']/df1['旅客周转量总计']*100,2))

rate3=list(round(df1['水运']/df1['旅客周转量总计']*100,2))

rate4=list(round(df1['民航']/df1['旅客周转量总计']*100,2))

print(rate1)

print(rate2)

print(rate3)

print(rate4)

#定义函数

defget_year_overlap_chart(year:int):

#绘制柱形图

bar=(

Bar(opts.InitOpts(width="800px",height="650px"))

.add_xaxis(lable)

.add_yaxis("旅客周转量总计",data0,bar_width=60)

.set_global_opts(

title_opts=opts.TitleOpts(

title="2015-2019年我国旅客周转量情况",

subtitle="单位:亿人公里",

pos_left='left'),

#添加脚注

graphic_opts=opts.GraphicGroup(

graphic_item=opts.GraphicItem(left='4%',bottom='3%'),

children=[

opts.GraphicText(graphic_textstyle_opts=

opts.GraphicTextStyleOpts(text='数据来源:国家统计局',

font="14pxMicrosoftYaHei"))]

),

legend_opts=opts.LegendOpts(selected_mode='multiple',

orient='vertical',

is_show=True,

pos_right='-25',

pos_bottom='55%'))

)

#绘制饼图

pie=(

Pie()

.add(

series_name="占比",

data_pair=[

["铁路旅客周转量占比",rate1[year]],

["公路旅客周转量占比",rate2[year]],

["水运旅客周转量占比",rate3[year]],

["民航旅客周转量占比",rate4[year]]

],

center=["38%","18%"],

radius="18%",

is_clockwise=False)

.set_series_opts(label_opts=

opts.LabelOpts(formatter="{b}:{c}%"))

).set_global_opts(legend_opts=opts.LegendOpts(is_show=False))

returnbar.overlap(pie)

#创建时间线轮播多图

timeline=Timeline(init_opts=

opts.InitOpts(width="900px",height="600px"))

foryinrange(5):

print(y)

timeline.add(get_year_overlap_chart(year=y),time_point=str(y))

timeline.add_schema(is_auto_play=True,play_interval=2000)

timeline.render("d:/html/test7-1.html")源代码如下:frompyechartsimportoptionsasopts

frompyecharts.chartsimportBar

importpandasaspd

importxlrd

#导入数据

df=pd.read_excel('d:/dataset/我国各类运输'

'方式旅客周转量情况.xls',

header=1)

#获取数据

df1=df.iloc[5:]

print(df1)

lable=list(df1['年份'])

data1=list(df1['铁路'])

data2=list(df1['公路'])

data3=list(df1['民航'])

data4=list(df1['水运'])

print(lable)

print(data1)

#绘制堆叠柱形图

bar=(

Bar()

.add_xaxis(lable)

.add_yaxis("铁路旅客周转量",data1,stack="stack1",bar_width=40)

.add_yaxis("公路旅客周转量",data2,stack="stack1",bar_width=40)

.add_yaxis("民航旅客周转量",data3,stack="stack1",bar_width=40)

.add_yaxis("水运旅客周转量",data4,stack="stack1",bar_width=40)

#标签配置项:在右边显示标签

.set_series_opts(

label_opts=opts.LabelOpts(is_show=True,position="right"))

.set_global_opts(

#设置标题

title_opts=opts.TitleOpts(

title="2015-2019年我国铁路、公路、民航、水运旅客周转量情况",

subtitle="单位:亿人公里",

pos_left='center'),

#添加脚注

graphic_opts=opts.GraphicGroup(

graphic_item=opts.GraphicItem(left='10%',bottom='0%'),

children=[

opts.GraphicText(graphic_textstyle_opts=

opts.GraphicTextStyleOpts(text='数据来源:国家统计局',

font="14pxMicrosoftYaHei")

)]

),

#设置图例

legend_opts=opts.Leg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论