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

如何让Plotly Python中add_trace的文本显示在add_shape上方

问题描述

我用Plotly制作了一个包含矩形和文本的图表,发现通过add_trace添加的文本无法显示,但移除add_shape的填充色后就能看到文本。示例代码如下:

import plotly.graph_objects as go
import numpy as np
import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'score': [3, 4, 2],
    'Exon_Number': ['Exon1', 'Exon2', 'Exon3']
})

fig = go.Figure()
start = 0
for row in df.index:
    fig.add_shape(type="rect",x0=start, y0=1, x1=start+df['score'][row], y1=1.5,line=dict(color='green',),fillcolor='green',)
    start=start+df['score'][row]+2
fig.add_trace(go.Scatter(x=np.cumsum(list(df['score']+2))-df['score'][0],y=[1.25]*df.shape[0],mode="text",textfont=dict(family="sans serif",size=10,color="yellow"),
    text=list(df['Exon_Number']), showlegend=False,textposition='top center',))

fig.show()

请问如何让文本显示在矩形形状的上方?

解决方案

方法1:设置形状的图层为底层

Plotly默认将形状渲染在所有轨迹(trace)的上方,导致填充矩形挡住了文本。只需在add_shape时添加layer="below"参数,让矩形显示在文本下方:

for row in df.index:
    fig.add_shape(
        type="rect",
        x0=start, 
        y0=1, 
        x1=start+df['score'][row], 
        y1=1.5,
        line=dict(color='green'),
        fillcolor='green',
        layer="below"  # 让矩形处于底层
    )
    start=start+df['score'][row]+2

方法2:把文本移到矩形外部

如果不想调整图层,也可以将文本的y坐标设置到矩形范围之外(比如y=1.6),同时调整文本位置参数确保显示正确:

fig.add_trace(go.Scatter(
    x=np.cumsum(list(df['score']+2))-df['score'][0],
    y=[1.6]*df.shape[0],  # y值大于矩形的y1=1.5,放在矩形上方
    mode="text",
    textfont=dict(family="sans serif",size=10,color="yellow"),
    text=list(df['Exon_Number']), 
    showlegend=False,
    textposition='middle center'  # 文本居中显示
))

方法3:调整文本位置到矩形外部区域

也可以保持文本y坐标不变,将textposition改为"outside top",强制文本显示在矩形的外部上方:

fig.add_trace(go.Scatter(
    x=np.cumsum(list(df['score']+2))-df['score'][0],
    y=[1.25]*df.shape[0],
    mode="text",
    textfont=dict(family="sans serif",size=10,color="yellow"),
    text=list(df['Exon_Number']), 
    showlegend=False,
    textposition='outside top'  # 文本显示在点的外部上方
))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:33:59