Bokeh数据可视化:散点图绘制完全指南
散点图基础概念
散点图是数据可视化中最常用的图表类型之一,它通过在二维平面上绘制数据点来展示两个变量之间的关系。Bokeh作为Python生态中强大的交互式可视化库,提供了丰富的散点图绘制功能。
Bokeh中的散点标记类型
Bokeh内置了多种散点标记样式,可以满足不同场景下的可视化需求:
基础标记类型
- 圆形标记:
circle
- 方形标记:
square
- 三角形标记:
triangle
- 菱形标记:
diamond
- 星形标记:
star
- 十字标记:
cross
- X形标记:
x
复合标记类型
Bokeh还支持将基础标记与其他视觉元素组合:
- 带点的圆形:
circle_dot
- 带十字的方形:
square_cross
- 带点的三角形:
triangle_dot
- 带针的方形:
square_pin
绘制散点图的最佳实践
在Bokeh中,推荐使用scatter()
方法来创建散点图,这是最灵活和一致的方式。示例代码如下:
from bokeh.plotting import figure, show
# 创建绘图对象
p = figure(width=400, height=400)
# 添加散点数据
p.scatter([1, 2, 3, 4, 5], [6, 7, 2, 4, 5],
size=15,
marker="circle",
color="navy")
show(p)
标记属性详解
所有散点标记都支持以下核心属性:
x
:x轴坐标数据y
:y轴坐标数据size
:标记大小(屏幕单位)angle
:旋转角度(默认弧度制)
圆形标记(circle
)有特殊之处:
- 额外支持
radius
属性(数据单位) - 当通过
scatter()
方法使用时,不支持radius
属性
自定义标记实现
Bokeh支持创建完全自定义的标记样式,这为特殊需求提供了解决方案。自定义标记可以通过SVG路径定义,实现独特的视觉效果。
# 自定义标记示例
custom_marker = """
M 0 -10
L 5 0
L 0 10
L -5 0
Z
"""
p.scatter(x, y, marker=custom_marker, size=20)
使用图片作为标记
Bokeh支持将外部图片作为散点标记,这为数据可视化提供了更多创意空间:
p.image_url(url=['https://example.com/image.png'],
x=[1, 2, 3],
y=[1, 2, 3],
w=0.1, h=0.1)
注意事项:
- 图片URL必须通过HTTP/HTTPS可访问
- 安全限制下,不支持本地文件路径(file://)
- HTTPS页面必须使用HTTPS图片URL
性能优化建议
当处理大量数据点时:
- 考虑使用
circle()
而非scatter()
以获得更好性能 - 适当调整标记大小和透明度
- 对于超大数据集,考虑使用WebGL加速
总结
Bokeh提供了丰富而灵活的散点图绘制能力,从基础标记到自定义样式,再到图片标记,能够满足各种数据可视化需求。掌握这些功能,可以创建出既美观又富有信息量的交互式散点图。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考