大家好,我是 【Python当打之年(点击跳转)】
本期利用 python 的 pyecharts 和 matplotlib 可视化库分析一下 疫情前(2019年)和疫情后(2022年)全国各旅游地区酒店登记情况,希望对大家有所帮助,如有疑问或者需要改进的地方可以私信小编。
涉及到的库:
import pandas as pd
from pyecharts.charts import Line
from pyecharts.charts import Bar
from pyecharts.charts import Map
from pyecharts.charts import Grid
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
plt.style.use('ggplot')
import warnings
warnings.filterwarnings("ignore")
df_2019_1 = pd.read_excel('./2019年第四季度全国星级饭店经营情况统计表(按地区分).xlsx', header=2)
df_2019_1.head(10)
df_2022_1 = pd.read_excel('./2022年第四季度全国星级饭店经营情况统计表.xlsx', header=1)
df_2022_1.head(10)
df_2019_1 = df_2019_1[2:-1].reset_index(drop=True)
df_2022_1 = df_2022_1[2:-1].reset_index(drop=True)
cols = ['地区', '数量(家)', '营业收入(亿元)', '餐饮收入比重(%)', '客房收入比重(%)', '平均房价(元/间夜)',
'平均出租率(%)', '每间可供出租客房收入(元/间夜)', '每间客房平摊营业收入(元/间)', '平均房价同比(%)',
'平均出租率同比(%)', '每间可供出租客房收入同比(%)', '每间客房平摊营业收入同比(%)']
df_2019_1.columns = cols
df_2022_1.columns = cols
df_hotel = df_2019_1[['地区', '数量(家)']]
df_hotel.columns = ['地区', '2019_数量(家)']
df_hotel['2022_数量(家)'] = df_2022_1['数量(家)']
df_hotel = df_hotel.sort_values('2019_数量(家)')
df_hotel['2019_数量(家)'] = df_hotel['2019_数量(家)']
def get_bar1(df_hotel):
bar = (
Bar()
.add_xaxis(df_hotel['地区'].values.tolist())
.add_yaxis('2019年全国各地区酒店数量',
df_hotel['2019_数量(家)'].values.tolist(),
stack='1',
tooltip_opts=opts.TooltipOpts(is_show=False)
)
.add_yaxis('2022年全国各地区酒店数量',
df_hotel['2022_数量(家)'].values.tolist(),
stack='1',
tooltip_opts=opts.TooltipOpts(is_show=False),
)
.set_global_opts(
tooltip_opts=opts.TooltipOpts(is_show=True, trigger='axis', axis_pointer_type='cross'),
title_opts=opts.TitleOpts(
title='2019_2022年全国各地区酒店数量(家)',pos_top='1%',pos_left='37%',title_textstyle_opts=opts.TextStyleOpts(font_size=20,color='#fff000')),
legend_opts=opts.LegendOpts(is_show=True, pos_top='6%',pos_left='36%'),
xaxis_opts=opts.AxisOpts(is_show=False, max_=500),
yaxis_opts=opts.AxisOpts(
axisline_opts=opts.AxisLineOpts(is_show=False),
axislabel_opts=opts.LabelOpts(color='#00c6d7', font_size=12, font_weight='bold')),
)
).reversal_axis()
return bar
def get_map1(df_hotel):
map_2022 = (
Map()
.add('',
[list(z) for z in zip(df_hotel['地区'].values.tolist(), df_hotel['2022_数量(家)'].values.tolist())],
maptype='china',
is_map_symbol_show=False,
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
is_show=True,
is_piecewise=True,
min_ = 0,
max_ = 500,
split_number = 5,
series_index=0,
pos_top='70%',
pos_left='20%',
),
title_opts=opts.TitleOpts(
title='2022年全国各地区酒店登记数量(家)',
pos_left='center',pos_top='3%',
title_textstyle_opts=opts.TextStyleOpts(color='#fff200',font_size=20))
)
)
return map_2022
def get_count_50(x_data,y_data1,y_data2,y_data3):
b2 = (
Bar(init_opts=opts.InitOpts(theme='purple-passion',width='500px', height='1400px',bg_color='#0d0735'))
.add_xaxis(x_data)
.add_yaxis("三星饭店数量", y_data1, stack="stack1",itemstyle_opts=opts.ItemStyleOpts(color='#00b2a9'))
.add_yaxis("四星饭店数量",y_data2, stack="stack1",itemstyle_opts=opts.ItemStyleOpts(color='#203fb6'))
.add_yaxis("五星饭店数量",y_data3, stack="stack1",itemstyle_opts=opts.ItemStyleOpts(color='#e7298a'))
.set_global_opts(
tooltip_opts=opts.TooltipOpts(is_show=True, trigger='axis', axis_pointer_type='cross'),
title_opts=opts.TitleOpts(
title='2022年全国50个重点旅游城市星级饭店数量(家)',
pos_top='1%',
pos_left='center',
title_textstyle_opts=opts.TextStyleOpts(font_size=20,color='#fff000')),
)
.reversal_axis()
)
return b2
点击跳转:【全部可视化项目源码+数据】
以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享(注明出处)让更多人知道。