数据可视化--实验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

# 数据根目录
data_path = r'data/实验二'

def dataSet(filename, header=2, nrows=12, index_col=0, usercols=None, file_type="excel", encoding="utf-8"):
    if file_type == "excel":
        data = pd.read_excel(os.path.join(data_path, filename), header=header, nrows=nrows, index_col=index_col,
                             usecols=usercols, encoding=encoding)
    elif file_type == "csv":
        data = pd.read_csv(os.path.join(data_path, filename), header=header, nrows=nrows, index_col=index_col,
                           usecols=usercols, encoding=encoding)
    else:
        print("出错了")
        return None

    return data
def showBarh(data, im_name, im_title,xlabel="xlabel", ylabel="ylabel"):
    ax = data.plot(kind='barh', title=im_title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    plt.show()
    # 保存
    fig = ax.get_figure()
    fig.savefig(os.path.join(data_path, im_name + ".jpg"))

def showBar(data, im_name, im_title,xlabel="xlabel", ylabel="ylabel"):

    ax = data.plot(kind='bar', title=im_title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    plt.show()
    # 保存
    fig = ax.get_figure()
    fig.savefig(os.path.join(data_path, im_name + ".jpg"))


def showCumsum(data, im_name, im_title, xlabel="xlabel", ylabel="ylabel"):
    ax = data.plot(title=im_title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    plt.show()
    # 保存
    fig = ax.get_figure()
    fig.savefig(os.path.join(data_path, im_name + ".jpg"))



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()

猜你喜欢

转载自blog.csdn.net/qq_41971768/article/details/106714394
今日推荐