如何实现Plotly Express水平图例表格宽度与图表宽度同步自适应?
解决Plotly Express水平图例无法随页面同步拉伸的问题
我之前也碰到过这个情况——水平布局的图例在页面缩放时总是跟不上图表的宽度变化,只缩在一边。其实只需要在图例配置里加个宽度设置,再调整下定位参数就能搞定。
修改后的完整代码
import plotly.express as px from datetime import datetime # 别忘了导入datetime模块 df = px.data.gapminder().query("year==2007") fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", size="pop", size_max=45, log_x=True) fig.update_layout(legend=dict( orientation="h", yanchor="bottom", y=1.02, xanchor="left", # 改为左对齐,让图例从绘图区域左侧开始 x=0, # 定位到绘图区域左边缘 bgcolor="LightGray", bordercolor="Black", borderwidth=1, tracegroupgap=50, width=1 # 设置宽度为绘图区域的100%,实现同步拉伸 )) filedate = datetime.now().strftime("%d%m%Y_%H%M") with open(filedate + '_graph.html', 'a') as f: f.write(fig.to_html(full_html=False, include_plotlyjs='cdn', config={'displayModeBar': False}))
关键修改说明
- 定位调整:把
xanchor从"right"改成"left",同时x设为0,这样图例的起点会对齐绘图区域的左边缘,而不是右边缘。 - 宽度设置:新增
width=1,这个值是相对于绘图区域的比例,1就代表占满整个绘图区域的宽度。这样当图表随页面缩放时,图例也会同步拉伸。 - 原有的背景色、边框、间距等样式配置都可以保留,不影响这个功能。
现在生成HTML后用Ctrl+滚轮缩放页面,就能看到图例和图表一起铺满宽度,同步调整尺寸了。
内容的提问来源于stack exchange,提问作者Krystian Warda
相关产品推荐
相关产品推荐

