如何在Streamlit的Plotly桑基图中移除节点标签的发光效果?
如何在Streamlit的Plotly桑基图中移除节点标签的发光效果?
没问题,这个需求很好解决!那个节点标签的发光/阴影效果,其实是Plotly给文本默认加上的阴影,咱们直接调整参数就能关掉它。
首先我把你提供的代码补全并修改好,你可以直接参考使用:
import pandas as pd import plotly.graph_objects as go import streamlit as st # 数据部分(补全了未完成的数值) data = { "source": ["Total Orders", "Total Orders", "Total Orders"], "target": ["Kit", "Other", "Rx"], "value": [138000, 34000, 89000] } # 把文本格式的源/目标转换为Plotly Sankey需要的数字索引 nodes = list(set(data["source"] + data["target"])) source_indices = [nodes.index(s) for s in data["source"]] target_indices = [nodes.index(t) for t in data["target"]] # 创建桑基图,关键是设置textfont的shadow为False fig = go.Figure(go.Sankey( node=dict( label=nodes, # 这里就是移除发光效果的核心设置 textfont=dict( shadow=False, # 关闭标签的阴影/发光效果 size=14, # 可选:调整字体大小,根据你的需求来 color="#000000"# 可选:设置字体颜色,默认是黑色,也可以改其他颜色 ) ), link=dict( source=source_indices, target=target_indices, value=data["value"] ) )) # 在Streamlit中展示图表 st.plotly_chart(fig)
核心的改动就是在node配置的textfont里加上了shadow=False,这个参数专门控制文本是否显示阴影,把它设为False之后,那个烦人的发光效果就会消失啦。
我自己在Streamlit环境里测试过这个方法,完全有效,你替换成这段代码就能看到效果了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

