Python Bokeh 可视化:不同职业中婚姻状况的占比分析
使用 Python Bokeh 库可视化不同职业中婚姻状况的占比
本示例使用 Python Bokeh 库,对不同职业分类中婚姻状况的占比进行可视化分析。
1. 数据准备
首先,我们需要加载并预处理数据。假设我们有一个名为'train.csv'的 CSV 文件,包含有关不同职业和婚姻状况的信息。
from bokeh.plotting import figure, show, output_file
import numpy as np
import pandas as pd
df = pd.read_csv(r'/Users/fuchuanruo/Desktop/可视化作业/实践/train.csv')
# 数据预处理
df = df.dropna() # 去除缺失值
df = df[df['job'] != 'unknown'] # 去除职业为'unknown'的数据
df = df[df['marital'] != 'unknown'] # 去除婚姻状况为'unknown'的数据
2. 数据统计
接下来,我们需要统计不同职业和婚姻状况的人数,并计算每个职业中不同婚姻状况的占比。
# 统计不同职业和婚姻状况的人数
job_marital_count = df.groupby(['job', 'marital'])['age'].count().reset_index()
job_count = df.groupby(['job'])['age'].count().reset_index()
# 计算每个职业中不同婚姻状况的占比
job_marital_count['percentage'] = job_marital_count['age'] / job_count['age'] * 100
3. 可视化图表
最后,使用 Bokeh 库绘制堆叠条形图来可视化不同职业中婚姻状况的占比。
# 绘制可视化图表
p = figure(title='不同职业中婚姻状况的占比', x_range=job_marital_count['job'].unique(), plot_height=500, plot_width=800)
# 绘制堆叠条形图
marital_status = job_marital_count['marital'].unique()
colors = ['#718dbf', '#e84d60', '#49a677']
for i, marital in enumerate(marital_status):
p.vbar(x=dodge('job', i-1, range=p.x_range), top='percentage', width=0.2, source=job_marital_count[job_marital_count['marital']==marital],
color=colors[i], legend_label=marital)
# 设置图表属性
p.x_range.range_padding = 0.1
p.xgrid.grid_line_color = None
p.legend.location = 'top_left'
p.legend.orientation = 'horizontal'
p.xaxis.axis_label = '职业'
p.yaxis.axis_label = '占比'
# 输出图表
output_file('job_marital.html')
show(p)
总结
通过使用 Bokeh 库,我们可以轻松地将不同职业中婚姻状况的占比可视化。堆叠条形图能够清晰地展现各个职业中不同婚姻状况的比例,使数据解读更加直观。
原文地址: https://www.cveoy.top/t/topic/jjXQ 著作权归作者所有。请勿转载和采集!