#每个价格等级酒店数量数量的柱状图
import pandas as pd
import matplotlib.pyplot as plt
# 解决中文乱码问题
plt.rcParams['font.sans-serif']='SimHei'
# # 解决负号无法显示问题
# plt.rcParams['axes.unicode_minus']=False
df = pd.read_excel('./酒店数据1.xlsx')
df['价格等级'] = pd.cut(df['价格'],[0,1000,2000,3000,4000,5000,15000],
labels=['0——1000元','1000——2000元','2000——3000元','3000——4000元','4000——5000元','5000元以上'])
data = df['价格等级'].value_counts()
x = data.index
y = data.values
plt.figure(figsize=(10,6))
plt.bar(x,y,color='r',width=0.8)
plt.title('价格等级酒店数量分布',fontsize=20)
plt.xlabel('价格等级',fontsize=18)
plt.ylabel('酒店数量',fontsize=18)
#显示每个轴的数字
for a,b in zip(x,y):
#第一参数x轴的位置,第二个参数就是y轴的位置,第三个参数显示的文本内容
plt.text(a,b,b,ha='center',va='bottom',fontsize=15)
plt.show()
#每个价格等级占比的饼图
import pandas as pd
import matplotlib.pyplot as plt
# 解决中文乱码问题
plt.rcParams['font.sans-serif']='SimHei'
# # 解决负号无法显示问题
# plt.rcParams['axes.unicode_minus']=False
df = pd.read_excel('./酒店数据1.xlsx')
df['价格等级'] = pd.cut(df['价格'],[0,1000,2000,3000,4000,5000,15000],
labels=['0——1000元','1000——2000元','2000——3000元','3000——4000元','4000——5000元','5000元以上'])
data = df['价格等级'].value_counts()
#print(data)
x = data.values
y = x/sum(x)
# print(x)
# print(y)
plt.figure(figsize=(15,10))
plt.pie(y,labels=data.index,autopct='%.1f %%',radius=2)
plt.title('价格等级占比')
#显示图例
plt.legend()
plt.show()
#每个地区酒店数量的柱状图
import pandas as pd
import matplotlib.pyplot as plt
# 解决中文乱码问题
plt.rcParams['font.sans-serif']='SimHei'
# # 解决负号无法显示问题
# plt.rcParams['axes.unicode_minus']=False
df = pd.read_excel('./酒店数据1.xlsx')
data = df['地区'].value_counts()
x = data.index
y = data.values
plt.figure(figsize=(10,6))
plt.bar(x,y,color='r',width=0.8)
plt.title('各个地区酒店数量分布',fontsize=30)
plt.xlabel('地区',fontsize=20)
plt.ylabel('酒店数量',fontsize=20)
#调整x轴竖着显示
plt.xticks(rotation=90)
#显示每个轴的数字
for a,b in zip(x,y):
#第一参数x轴的位置,第二个参数就是y轴的位置,第三个参数显示的文本内容
plt.text(a,b,b,ha='center',va='bottom',fontsize=15)
plt.show()
#每个热门等级酒店评分均值的柱状图
import pandas as pd
import matplotlib.pyplot as plt
# 解决中文乱码问题
plt.rcParams['font.sans-serif']='SimHei'
# # 解决负号无法显示问题
# plt.rcParams['axes.unicode_minus']=False
df = pd.read_excel('./酒店数据1.xlsx')
df['评分等级'] = pd.cut(df['评分人数'],[0,100,1000,5000,50000],
labels=['0——100人','100——1000人','1000——5000人','5000——50000人'])
x = df['评分等级'].unique()
y = [df[df['评分等级'] == '0——100人']['评分'].mean(),
df[df['评分等级'] == '100——1000人']['评分'].mean(),
df[df['评分等级'] == '1000——5000人']['评分'].mean(),
df[df['评分等级'] == '5000——50000人']['评分'].mean(),]
plt.figure(figsize=(10,6))
plt.bar(x,y,color='r',width=0.8)
plt.title('各热门等级酒店数量分布',fontsize=20)
plt.xlabel('热门等级',fontsize=20)
plt.ylabel('等级酒店评分均分',fontsize=20)
#显示每个轴的数字
for a,b in zip(x,y):
#第一参数x轴的位置,第二个参数就是y轴的位置,第三个参数显示的文本内容
plt.text(a,b,round(b,2),ha='center',va='bottom',fontsize=15)
plt.show()
#评分与价格信息的散点图
import matplotlib.pyplot as plt
import pandas as pd
# 解决中文乱码问题
plt.rcParams['font.sans-serif']='SimHei'
# # 解决负号无法显示问题
# plt.rcParams['axes.unicode_minus']=False
df = pd.read_excel('./酒店数据1.xlsx')
x = df['评分']
y = df['价格']
plt.scatter(x,y,color='c',marker='h')
plt.title('酒店评分与价格',fontsize=20)
plt.xlabel('评分',fontsize=18)
plt.ylabel('价格',fontsize=18)
plt.show()
#酒店评分的直方图
import pandas as pd
import matplotlib.pyplot as plt
# 解决中文乱码问题
plt.rcParams['font.sans-serif']='SimHei'
# # 解决负号无法显示问题
# plt.rcParams['axes.unicode_minus']=False
df = pd.read_excel('./酒店数据1.xlsx')
plt.figure(figsize=(7,5))
plt.hist(df['评分'],bins=7,edgecolor='k')
plt.title('酒店评分')
plt.xlabel('酒店')
plt.ylabel('评分')
plt.show()


