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

如何让Plotly go.Cone基于DataFrame指定列而非默认幅值着色?

解决Plotly Cone自定义着色问题

要让锥的颜色对应预计算的Force_Mag列,不用无效的color参数,而是通过marker.color绑定目标数据列,同时配套校准色条范围,修正原代码的语法错误,具体修改如下:

修改后的完整代码

import plotly.graph_objects as go

fig = go.Figure(data=go.Cone(
    x=df["x"], y=df["y"], z=df["z"],
    u=df["Force_x"]/df["Force_Mag"], v=df["Force_y"]/df["Force_Mag"], w=df["Force_z"]/df["Force_Mag"],
    colorscale='Viridis',
    # 绑定自定义颜色列
    marker=dict(color=df["Force_Mag"]),
    # 设置色条范围匹配Force_Mag的实际区间
    cmin=df["Force_Mag"].min(),
    cmax=df["Force_Mag"].max(),
    colorbar=dict(title='Force Mag'),
    hovertext=df.apply(lambda row: f"Aminoacido: {row['Aminoacido']}<br>Force Mag: {row['Force_Mag']}", axis=1),
    hoverinfo="x+y+z+text",
    sizemode="absolute", sizeref=10, # 保持锥尺寸统一
))
fig.show()

关键修改说明

  • 自定义着色核心:用marker.color=df["Force_Mag"]替代无效的color参数,这是Plotly Cone组件支持的自定义颜色映射方式,直接把每个锥的颜色和Force_Mag值绑定。
  • 色条范围校准:添加cmin和cmax,强制色条的最小值和最大值匹配Force_Mag的实际区间,避免色条显示归一化后的0-1范围。
  • hover信息优化:修改hovertext,把Force_Mag直接加入悬浮提示里,同时去掉hoverinfo里的norm,避免显示归一化后的幅值,只保留需要的信息。
  • 语法错误修正:原代码把fig.show()写在了go.Cone()的参数内部,会导致语法报错,需要移到go.Figure()外面单独调用。

内容的提问来源于stack exchange,提问作者Willy Menacho Nacho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:42:37