Bokeh数据可视化:使用标记变换绘制企鹅数据集散点图
概述
本文将介绍如何使用Bokeh库中的标记变换功能(factor_mark)来创建具有区分度的散点图。我们将以著名的Palmer企鹅数据集为例,展示如何通过不同标记样式来区分不同企鹅物种的数据点。
准备工作
首先确保已安装Bokeh库。我们将使用Bokeh自带的企鹅数据集,该数据集包含了三种企鹅物种的身体测量数据。
核心代码解析
from bokeh.plotting import figure, show
from bokeh.sampledata.penguins import data
from bokeh.transform import factor_cmap, factor_mark
# 获取数据集中所有独特的企鹅物种并排序
SPECIES = sorted(data.species.unique())
# 定义三种不同的标记样式
MARKERS = ['hex', 'circle_x', 'triangle']
# 创建基础图形
p = figure(title="Penguin size", background_fill_color="#fafafa")
p.xaxis.axis_label = 'Flipper Length (mm)'
p.yaxis.axis_label = 'Body Mass (g)'
# 绘制散点图
p.scatter("flipper_length_mm", "body_mass_g", source=data,
legend_group="species", fill_alpha=0.4, size=12,
marker=factor_mark('species', MARKERS, SPECIES),
color=factor_cmap('species', 'Category10_3', SPECIES))
# 设置图例位置和标题
p.legend.location = "top_left"
p.legend.title = "Species"
# 显示图形
show(p)
关键技术点详解
1. 标记变换(factor_mark)
factor_mark
是Bokeh提供的一个强大功能,它允许我们根据分类变量的不同值自动分配不同的标记样式。在本例中:
- 第一个参数'species'指定了数据源中用于分组的列名
- 第二个参数MARKERS定义了要使用的标记样式列表
- 第三个参数SPECIES定义了分组变量的唯一值列表
2. 颜色映射(factor_cmap)
除了标记样式,我们还使用了factor_cmap
为不同物种分配不同颜色:
- 使用'Category10_3'调色板(包含3种颜色的预定义调色板)
- 确保颜色与标记样式同步变化,增强可视化效果
3. 其他重要参数
fill_alpha=0.4
:设置标记填充透明度,有助于在数据点重叠时提高可读性size=12
:控制标记大小legend_group="species"
:自动根据物种分组创建图例
可视化效果分析
生成的散点图展示了企鹅鳍肢长度与体重之间的关系:
- x轴:鳍肢长度(毫米)
- y轴:体重(克)
- 不同标记:代表不同企鹅物种
- 不同颜色:增强物种区分度
这种可视化方式特别适合展示多类别数据的分布和关系,能够直观地比较不同类别间的差异。
实际应用建议
- 标记选择:选择在视觉上容易区分的标记样式,避免使用过于相似的形状
- 颜色搭配:确保颜色对比度足够,同时考虑色盲用户的观看体验
- 透明度设置:在数据点密集区域,适当调整透明度可以提高可视化效果
- 图例设计:确保图例清晰明了,准确反映各类别的标记和颜色
扩展思考
这种标记变换技术不仅适用于生物学数据,也可以应用于:
- 金融领域不同行业公司的数据比较
- 市场营销中不同客户群体的行为分析
- 教育领域中不同学校或班级的成绩分布
通过灵活运用Bokeh的标记变换功能,我们可以创建出信息丰富且美观的数据可视化图表,有效传达数据背后的故事。
总结
本文详细介绍了如何使用Bokeh的标记变换功能创建分类散点图。通过结合不同的标记样式和颜色映射,我们能够清晰地展示企鹅数据集中不同物种的体型特征差异。这种技术是数据可视化中区分分类数据的有效方法,值得在实际分析工作中广泛应用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考