You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Holoviews中如何用标记替代颜色区分island?求cmap等效的marker设置方法

用标记(Marker)替代颜色区分Holoviews散点图的类别

Holoviews里没有和cmap完全同名的marker参数,但可以用和颜色映射逻辑一致的方式,实现按类别分配不同标记。

核心思路是用dim('列名').categorize()方法,把每个类别映射到对应的标记类型,和cmap映射颜色的逻辑完全匹配。

修改后的代码如下:

from holoviews import extension, dim, opts, Scatter
from pandas import read_csv
extension('bokeh')
url = 'https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv'
df = read_csv(url)
scatterplot = Scatter(df, 'flipper_length_mm', ['body_mass_g','island'] )

# 定义岛屿类别到标记的映射,和原cmap的颜色列表对应逻辑一致
marker_map = {'Torgersen': 'circle', 'Biscoe': 'square', 'Dream': 'triangle'}
scatterplot.opts(
    marker=dim('island').categorize(marker_map),
    # 可以设置统一颜色,也可以保留颜色区分(如果需要的话)
    color='darkslategray'
)

关键说明:

  • marker_map字典里的键是你的island列的具体类别值,值是Bokeh支持的标记类型,可选类型包括circle、square、triangle、diamond、cross、x等
  • dim('island').categorize(marker_map)会自动把每个数据点的island值对应到字典里的标记,和你之前用dim('island').str()配合cmap分配颜色的逻辑完全一致
  • 如果需要同时保留颜色和标记区分,也可以保留原来的color参数设置

内容的提问来源于stack exchange,提问作者Primo Petri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:55:18