Bokeh数据可视化:散点图绘制完全指南

Bokeh数据可视化:散点图绘制完全指南

bokeh bokeh/bokeh: 是一个用于创建交互式图形和数据的 Python 库。适合用于数据可视化、数据分析和呈现,以及创建动态的 Web 应用。特点是提供了一种简洁、直观的 API 来描述和处理数据,并生成交互式的可视化效果。 bokeh 项目地址: https://gitcode.com/gh_mirrors/bo/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)

注意事项:

  1. 图片URL必须通过HTTP/HTTPS可访问
  2. 安全限制下,不支持本地文件路径(file://)
  3. HTTPS页面必须使用HTTPS图片URL

性能优化建议

当处理大量数据点时:

  1. 考虑使用circle()而非scatter()以获得更好性能
  2. 适当调整标记大小和透明度
  3. 对于超大数据集,考虑使用WebGL加速

总结

Bokeh提供了丰富而灵活的散点图绘制能力,从基础标记到自定义样式,再到图片标记,能够满足各种数据可视化需求。掌握这些功能,可以创建出既美观又富有信息量的交互式散点图。

bokeh bokeh/bokeh: 是一个用于创建交互式图形和数据的 Python 库。适合用于数据可视化、数据分析和呈现,以及创建动态的 Web 应用。特点是提供了一种简洁、直观的 API 来描述和处理数据,并生成交互式的可视化效果。 bokeh 项目地址: https://gitcode.com/gh_mirrors/bo/bokeh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪俪珍Phineas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值