px.scatter标记大小调整问题:仅显示首都城市标记的排查求助
问题分析与解决方案
嘿,我来帮你排查问题!
你当前代码的核心问题是初始设置的size='capital'直接隐藏了非首都城市的标记:当你把size参数绑定到capital字段时,非首都城市的capital值为0,这意味着它们的标记初始尺寸被设为0——尺寸为0的标记根本不会被渲染出来,哪怕后面用update_traces修改尺寸也没用,因为它们从一开始就没被画到图上。
修正后的代码方案
这里有两种简单的修正方式,你可以任选其一:
方案1:移除初始size参数,分别设置两类标记尺寸
fig = px.scatter(dados, x='longitude', y='latitude', title='Mapa', color='uf') # 设置非首都城市的标记尺寸 fig.update_traces(marker={'size': 10}, selector={'capital': '0'}) # 设置首都城市的标记尺寸(比非首都大) fig.update_traces(marker={'size': 20}, selector={'capital': '1'}) fig.show()
方案2:先给所有标记设置基础尺寸,再覆盖首都的尺寸
# 先给所有标记设置一个基础尺寸(比如10) fig = px.scatter(dados, x='longitude', y='latitude', title='Mapa', color='uf', size=[10]*len(dados)) # 单独把首都的标记尺寸改大 fig.update_traces(marker={'size': 20}, selector={'capital': '1'}) fig.show()
额外注意点
还要检查你dados数据里capital字段的类型:
- 如果
capital是整数类型(0和1),那selector里应该写selector={'capital': 0}而不是'0'; - 如果是字符串类型("0"和"1"),那当前的写法没问题。
内容的提问来源于stack exchange,提问作者Beatrice de Melo Silva
相关产品推荐
相关产品推荐

