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

如何基于DataFrame列分类设置Plotly标记线颜色(无填充)

实现无填充色、仅标记线按分类着色的Plotly散点图

示例数据

col1  col2 col3
0     1    10    C
1     2    15    A
2     3    20    A
3     4    25    A
4     5    30    B
5     6    35    B
6     7    40    B
7     8    45    B
8     9    50    B
9    10    55    B

现有代码

import plotly.express as px
import pandas as pd

df = pd.DataFrame({'col1':[1,2,3,4,5,6,7,8,9,10],
                'col2':[10,15,20,25,30,35,40,45,50,55],
                'col3':['C','A','A','A','B','B','B','B','B','B']})
fig = px.scatter(df, x='col1', y='col2', color='col3')
fig.update_traces(marker=dict(size=12))        
fig.show()

修改方法

要让标记无填充色,仅保留对应col3分类的标记线颜色,直接调整标记样式参数即可:

简洁版代码

import plotly.express as px
import pandas as pd

df = pd.DataFrame({'col1':[1,2,3,4,5,6,7,8,9,10],
                'col2':[10,15,20,25,30,35,40,45,50,55],
                'col3':['C','A','A','A','B','B','B','B','B','B']})
fig = px.scatter(df, x='col1', y='col2', color='col3')

fig.update_traces(
    marker=dict(
        color='rgba(0,0,0,0)',  # 设置填充色为全透明
        line=dict(
            width=2,  # 标记线宽度,可按需调整
            color='currentcolor'  # 自动沿用分类对应的颜色
        ),
        size=12
    )
)

fig.show()

灵活遍历版代码

如果需要对单个分类的样式做自定义调整,也可以逐个修改trace:

import plotly.express as px
import pandas as pd

df = pd.DataFrame({'col1':[1,2,3,4,5,6,7,8,9,10],
                'col2':[10,15,20,25,30,35,40,45,50,55],
                'col3':['C','A','A','A','B','B','B','B','B','B']})
fig = px.scatter(df, x='col1', y='col2', color='col3')

for trace in fig.data:
    trace.marker.color = 'rgba(0,0,0,0)'  # 设置填充色透明
    trace.marker.line.color = trace.name  # 绑定分类对应的颜色
    trace.marker.line.width = 2
    trace.marker.size = 12

fig.show()

关键说明

  • rgba(0,0,0,0)是完全透明的颜色,确保标记没有填充色;
  • currentcolor会自动匹配每个分类的预设颜色,无需手动指定;
  • 调整line.width可以让标记线更显眼,数值可根据需求修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:32:38