【大数据处理与可视化】六、数据可视化
实验目的
1.能够详述常见图表的类型和特点。
2.能够熟练运用Matplotlib库绘制图表。
3.能够通过借助网络资源,通过自主学习解决数据可视化中遇到的问题。
实验内容
画图分析某年旅游景点数据:以河北省景点为例,再结合所学的图表工具,把采集到的数据绘制成图表辅助分析,以得到如下几个指标:
(1)河北省总面积和游客量位居前三的景点。
(2)河北省旅游量的占比哪个最多,哪个最少。
实验步骤
一、案例——画图分析某年旅游景点数据
1、河北省总面积和游客量位居前三的景点
由于数据都保存在CSV文件中,所以可以用pd.read_csv()函数来读取风景名胜区.csv文件中数据。需要检查一下是否存在缺失值,使用平均值来替换缺失值,这也是处理缺失值常用的方法。将scenery_data中"省份"一列作为分组键,然后取出"河北"分组的数据。
找出河北省占地面积和游客数量位居前三的景点.这里使用了"总面积","游客量"两列数据.为了能够直观的看到这里两列数据,使用直方图.x轴: 景点的名称y轴: 表示占地面积和游客数量从生成的条形图可以看出,接待游客数量处于前三名的景点分别是:秦皇岛北戴河,西柏坡-天戴山,娲皇宫景点占地面积前三分别是:避暑山庄外八庙,野三坡,秦皇岛北戴河。
代码:
import pandas as pd
import numpy as np
scenery_file_path=open(r'D:/fengjing.csv')
scenery_data = pd.read_csv(scenery_file_path)
area = float("{:1f}".format(scenery_data['总面积(平方公里)'].mean()))
tourist=float("{:.1}".format(scenery_data['游客量(万人次)'].mean()))
values ={"总面积(平方公里)":area,"游客量(万人次)":tourist}
scenery_data=scenery_data.fillna(value=values)
data = scenery_data.groupby("省份")
hebei_scenery=dict([x for x in data])['河北']
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
area=hebei_scenery['总面积(平方公里)'].values
tourist = hebei_scenery['游客量(万人次)'].values
plt.figure(figsize=(12,6))
x_num = range(0,len(area))
x_dis = [i+0.3 for i in x_num]
plt.bar(x_num,area,color='g',width=.3,label='总面积')
plt.bar(x_dis,tourist,color='r',width=.3,label='游客量')
plt.ylabel('单位:平方千米/万人次')
plt.title("河北景点面积及游客量")
plt.legend(loc = 'upper right')
plt.xticks(range(0,10),['苍岩山','嶂石岩','西柏坡-天桂山','秦皇岛北戴河',
'响堂山','娲皇宫','太行大峡谷','崆山白云洞','野三坡','承德避暑山庄外八庙'])
plt.show()
截图:
2、河北省旅游量的占比哪个最多,哪个最少。
代码:
import matplotlib.pyplot as plt
every_scenery = hebei_scenery['游客量(万人次)'].values
all_scenery=hebei_scenery['游客量(万人次)'].sum()
percentage = (every_scenery/all_scenery)*100
np.set_printoptions(precision=2)
labels=['苍岩山','嶂石岩','西柏坡-天桂山','秦皇岛北戴河',
'响堂山','娲皇宫','太行大峡谷','崆山白云洞','野三坡','承德避暑山庄外八庙']
plt.axes(aspect=1)
plt.pie(x=percentage,labels=labels,autopct='%3.2f %%',shadow=True,labeldistance=1.2,
startangle=90,pctdistance=0.7)
plt.legend(loc='center left')
plt.show()
截图:
实验小结
通过本次实验,我能够详述常见图表的类型和特点,能够熟练运用Matplotlib库绘制图表。在实验过程中遇到了很多硬件或者是软件上的问题,请教老师,询问同学,上网查资料,都是解决这些问题的途径。最终将遇到的问题一一解决最终完成实验。
注意事项:
1、有疑问前,知识学习前,先用搜索。
2、熟读写基础知识,学得会不如学得牢。
3、选择交流平台,如QQ群,网站论坛等。
4、尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。