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

Plotly GO柱状图如何基于size列取值自定义marker_pattern_shape图案样式

[已由@Rob Raymond的第二个回答解决]

问题描述

我在定义Plotly GO柱状图的marker图案形状数据源(绑定指定列取值)时遇到了问题,需求是基于数据框中size列的不同取值,为对应柱状图柱子设置不同的填充图案(如"//"、"."等),且受限制只能使用plotly.graph_objects库,无法使用plotly.express。

最简可复现代码

import plotly.graph_objects as go
import pandas as pd
animals=['giraffes', 'orangutans', 'monkeys', 'rats']
size=['big', 'medium', 'medium', 'small']
number=[20, 14, 23, 5]
columns = ['animal','size','number','test']

df = pd.DataFrame({'animals':animals, 'size':size,'number':number})
fig = go.Figure([go.Bar( x=df['animals'].values.tolist(), y=df['number'].values.tolist())])
fig.update_traces(marker_pattern_shape=['.', '\\','+','/'])
fig.show()

对应数据集如下:

animalssizenumber
1giraffesbig20
2orangutansmedium14
3monkeysmedium23
4ratssmall5

Simple barchart

我尝试过如下写法:

  • fig.update_traces(marker_pattern_shape=['.', '\\','+','/'], marker_pattern = {'shape':['+', '\\']})
  • go.Bar(..., marker = {'pattern':'.'}, ...)

备注:我只能使用plotly GO,无法使用ploty express。


@Rob Raymond回答后更新

第一种简单场景的解决方案可以正常运行,但在我构造的多trace复杂场景下无法生效,更复杂的可复现代码如下:

import plotly.graph_objects as go
import pandas as pd
animals=['giraffes', 'orangutans', 'monkeys', 'rats', "mice"]
size=['big', 'medium', 'medium', 'small', "small"]
number=[20, 14, 23, 5, 4]
animalId=[1,2,3,4,5]
colorPlotly = ['lightslategrey','red','black', 'saddlebrown','grey']

df = pd.DataFrame({'animals':animals, 'size':size,'number':number,'animalId':animalId, 'colorPlotly':colorPlotly})
fig = go.Figure()
for id in animalId:
    fig.add_trace(go.Bar(
        x=df[df['animalId']==id]['animals'],
            y=df[df['animalId']==id]['number'],
                name = id,
                    marker_color=df[df['animalId']==id]['colorPlotly']))

fig.update_traces(marker_pattern_shape=df["size"].map({'big':".", 'medium':'\\', 'medium':'+', 'small':'/'}))
fig.show()

对应数据集如下:

animalssizenumbercolorPlotlyanimalId
1giraffesbig20lightslategrey1
2orangutansmedium14red2
3monkeysmedium23black3
4ratssmall4saddlebrown4
5micessmall5grey5

enter image description here

内容的提问来源于stack exchange,提问作者Krystian Warda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:39:03