Plotly:调整图表尺寸以容纳过长脚注
Plotly:调整图表尺寸以容纳过长脚注
嘿,这个问题我之前也碰到过——长脚注被图表底部截断确实挺烦人的。咱们可以通过两个关键调整来解决这个问题,让所有注释内容都完整显示:
核心思路
你的注释内容很长,而且设置了y=-1.5(相对于画布底部的位置),但默认的图表底部边距(margin)不够,导致内容被切掉。我们需要:
- 给图表底部预留足够的空白边距
- 优化注释的位置,配合边距调整让内容完全展示
修改后的完整代码
import plotly.express as px import plotly.graph_objects as go import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') fig = go.Figure(go.Scatter(x=df['Date'], y=df['AAPL.High'])) fig.update_xaxes(rangeslider_visible=True) # 先修正原注释里的链接错误(多余的引号会导致链接失效) note = 'NYSE Trading Days After Announcement<br>Source:<a href="https://www.nytimes.com/">The NY TIMES</a> Data: <a href="https://www.yahoofinance.com/">Yahoo! Finance</a><br>NYSE Trading Days After Announcement<br>Source:<a href="https://www.nytimes.com/">The NY TIMES</a> Data: <a href="https://www.yahoofinance.com/">Yahoo! Finance</a><br>NYSE Trading Days After Announcement<br>Source:<a href="https://www.nytimes.com/">The NY TIMES</a> Data: <a href="https://www.yahoofinance.com/">Yahoo! Finance</a><br>NYSE Trading Days After Announcement<br>Source:<a href="https://www.nytimes.com/">The NY TIMES</a> Data: <a href="https://www.yahoofinance.com/">Yahoo! Finance</a>' fig.add_annotation( showarrow=False, text=note, font=dict(size=10), xref='paper', x=0, # 让注释左对齐 yref='paper', y=-0.8 # 调整这个值,让注释落在预留的底部空白里 ) # 关键:设置底部边距,给脚注腾出足够空间(数值根据脚注长度调整) fig.update_layout( margin=dict(b=320), # b代表bottom margin,单位是像素 height=700 # 可选:如果需要整体图表更高,也可以设置height参数 ) fig.show()
关键调整说明
- 修正链接错误:原note中NY TIMES的链接多了一个多余的引号,比如
href="https://www.nytimes.com/"",这会导致点击链接时出错,必须去掉那个多余的引号。 - 调整底部边距:
margin=dict(b=320)是把图表底部的空白区域设为320像素,这样长脚注就有足够的显示空间了——如果你的脚注更长,可以把320改成更大的数值(比如400)。 - 优化注释位置:把注释的y坐标从
-1.5调整到-0.8,避免注释太靠下超出画布范围,配合底部边距的设置,让内容刚好落在预留的空白里。
如果之后脚注内容有变化,只需要对应调整b的数值和y坐标就可以啦~
备注:内容来源于stack exchange,提问作者TylerD
相关产品推荐
相关产品推荐

