数据可视化–实验2
前言
通过python中的pandas实现柱状图、条形图、折线图完成实验。
题目要求
1、”旅游业年度数据.xls”和“旅游业统计数据.csv”是2009-2018年的旅游业统计数据,包括国内游客人数、率收入、人均消费等数据。请按照下面要求进行数据展示,并从图中分析相关数据随时间的变化趋势。(数据可视化工具可选择python、R、AI)
(1)用折线图绘制旅行社和国内旅游总花费数据。
(2)用柱状图绘制国内旅游人均消费、城镇、农村人均旅游消费。
(3)用柱状图绘制入境游客、外国人入境游客、港澳同胞入境游客、台湾同胞入境游客人次。
(4)用条形图绘制国内游客、城镇、农村游客数据。
源数据
- 旅游业年度数据
数据库:年度数据 | ||||||||||
时间:最近10年 | ||||||||||
指标 | 2018年 | 2017年 | 2016年 | 2015年 | 2014年 | 2013年 | 2012年 | 2011年 | 2010年 | 2009年 |
旅行社数(个) | 27939 | 27621 | 26650 | 26054 | 24944 | 23690 | 22784 | 20399 | ||
星级饭店总数(个) | 11685 | 12327 | 12803 | 13293 | 12807 | 13513 | 13991 | 14237 | ||
入境游客(万人次) | 14120 | 13948.24 | 13844.38 | 13382.04 | 12849.83 | 12907.78 | 13240.53 | 13542.35 | 13376.22 | 12647.59 |
外国人入境游客(万人次) | 2916.53 | 2815.12 | 2598.54 | 2636.08 | 2629.03 | 2719.16 | 2711.2 | 2612.69 | 2193.75 | |
港澳同胞入境游客(万人次) | 10444.59 | 10456.26 | 10233.64 | 9677.16 | 9762.5 | 9987.35 | 10304.85 | 10249.48 | 10005.44 | |
台湾同胞入境游客(万人次) | 587.13 | 573 | 549.86 | 536.59 | 516.25 | 534.02 | 526.3 | 514.06 | 448.4 | |
入境过夜游客(万人次) | 6073.84 | 5926.73 | 5688.57 | 5562.2 | 5568.59 | 5772.49 | 5758.07 | 5566.45 | 5087.52 | |
国内居民出境人数(万人次) | 16199 | 14272.74 | 13513 | 12786 | 11659.32 | 9818.52 | 8318.17 | 7025 | 5738.65 | 4765.62 |
国内居民因私出境人数(万人次) | 13581.56 | 12850 | 12172 | 11002.91 | 9197.08 | 7705.51 | 6411.79 | 5150.79 | 4220.97 | |
国内游客(万人次) | 554000 | 500100 | 444000 | 400000 | 361100 | 326200 | 295700 | 264100 | 210300 | 190200 |
国际旅游外汇收入(百万美元) | 127100 | 123417 | 120000 | 113650 | 56913 | 51664 | 50028 | 48464 | 45814 | 39675 |
国内旅游总花费(亿元) | 51278 | 45660.77 | 39390 | 34195.1 | 30311.86 | 26276.1 | 22706.2 | 19305.39 | 12579.77 | 10183.7 |
注:2016年含边民入境人数 | ||||||||||
数据来源:国家统计局 |
- 旅游业统计数据
数据库:年度数据 | ||||||||||
时间:最近10年 | ||||||||||
指标 | 2018年 | 2017年 | 2016年 | 2015年 | 2014年 | 2013年 | 2012年 | 2011年 | 2010年 | 2009年 |
国内游客(百万人次) | 5540 | 5001 | 4440 | 4000 | 3611 | 3262 | 2957 | 2641 | 2103 | 1902 |
城镇居民国内游客(百万人次) | 3677 | 3195 | 2802 | 2483 | 2186 | 1933 | 1687 | 1065 | 903 | |
农村居民国内游客(百万人次) | 1324 | 1240 | 1188 | 1128 | 1076 | 1024 | 954 | 1038 | 999 | |
国内旅游总花费(亿元) | 51278 | 45660.8 | 39390 | 34195.1 | 30311.9 | 26276.1 | 22706.2 | 19305.4 | 12579.8 | 10183.7 |
城镇居民国内旅游总花费(亿元) | 37673 | 32241.3 | 27610.9 | 24219.8 | 20692.6 | 17678 | 14808.6 | 9403.8 | 7233.8 | |
农村居民国内旅游总花费(亿元) | 7987.7 | 7147.8 | 6584.2 | 6092.1 | 5583.5 | 5028.2 | 4496.8 | 3176 | 2949.9 | |
国内旅游人均花费(元) | 913 | 888.2 | 857 | 839.7 | 805.5 | 767.9 | 731 | 598.2 | 535.4 | |
城镇居民国内旅游人均花费(元) | 1024.6 | 1009.1 | 985.5 | 975.4 | 946.6 | 914.5 | 877.8 | 883 | 801.1 | |
农村居民国内旅游人均花费(元) | 603.3 | 576.4 | 554.2 | 540.2 | 518.9 | 491 | 471.4 | 306 | 295.3 | |
数据来源:国家统计局 |
编码实现
import pandas as pd
import matplotlib.pyplot as plt
import os
from utils import dataSet,showBarh,showBar,showCumsum
# 数据根目录
data_path = r'data/实验二'
if __name__ == "__main__":
"""
读取数据
"""
data1 = dataSet(filename="旅游业年度数据.xls")
data2 = dataSet(filename="旅游业统计数据.csv", header=2, nrows=9, file_type="csv", encoding="GBK")
data2 = data2.T
data1 = data1.T
# print(data1[["国内旅游总花费(亿元)","旅行社数(个)"]])
"""
实验2-1-1:用折线图绘制旅行社和国内旅游总花费数据
"""
showCumsum(
data=data1[["国内旅游总花费(亿元)", "旅行社数(个)"]],
im_name="实验2-1-1",
im_title="旅行社和国内旅游总花费数据(折线图)",
xlabel="年份",
ylabel="数值"
)
"""
实验2-1-2:用柱状图绘制国内旅游人均消费、城镇、农村人均旅游消费。
"""
showBar(
data2[["国内旅游人均花费(元)","城镇居民国内旅游人均花费(元)","农村居民国内旅游人均花费(元)"]],
im_name="实验2-1-2",
im_title="居民人均消费(条形图)",
xlabel="年份",
ylabel="数值"
)
"""
实验2-1-3:用柱状图绘制入境游客、外国人入境游客、港澳同胞入境游客、台湾同胞入境游客人次。
"""
showBar(
data1[["入境游客(万人次)","外国人入境游客(万人次)","港澳同胞入境游客(万人次)","台湾同胞入境游客(万人次)"]],
im_name="实验2-1-3",
im_title="入境游客人次(条形图)",
xlabel="年份",
ylabel="数值"
)
"""
实验2-1-4:用条形图绘制国内游客、城镇、农村游客数据。
"""
showBarh(
data2[["国内游客(百万人次)","城镇居民国内游客(百万人次)","农村居民国内游客(百万人次)"]],
im_name="实验2-1-4",
im_title="入境游客人次(条形图)",
xlabel="年份",
ylabel="数值"
)
plt.show()