Plotly如何添加垂直滚动条限制展示行数解决标签隐藏与条形过窄问题
Plotly 可滚动条形图解决方案
前置数据处理
首先对数据集按指标维度排序,保证展示顺序符合分析逻辑,示例代码如下:
import plotly.express as px import pandas as pd # 替换为你的实际数据集,示例字段:country(国家名称)、vaccination_per_hundred(每百人接种量) # 按接种量降序排序 df_sorted = df.sort_values("vaccination_per_hundred", ascending=False).reset_index(drop=True)
绘制支持滚动的横向条形图
核心逻辑是设置固定图表高度、限定初始Y轴显示范围,开启范围约束实现滚动效果,示例代码如下:
# 定义单次展示的国家数量 DISPLAY_COUNT = 20 # 按单条高度30px计算总高度,可根据实际需求调整 fig = px.bar( df_sorted, x="vaccination_per_hundred", y="country", orientation="h", height=DISPLAY_COUNT * 30 ) # 配置Y轴滚动参数 fig.update_layout( yaxis = dict( # 初始展示前20个国家,索引从0开始,区间偏移0.5避免首尾条形被截断 range = [-0.5, DISPLAY_COUNT - 0.5], # 限制滚动范围不超出数据集边界 constrainrange = "domain", # 调整标签字号避免重叠 tickfont = dict(size=12) ), # 给Y轴标签留出足够展示空间,避免国家名称被截断 margin = dict(l=150) ) fig.show()
效果说明
- 图表初始仅展示前20个国家的条形数据,不会出现条形过窄、标签隐藏问题
- 鼠标放置在Y轴区域滚动滚轮,即可上下滑动查看全部国家数据
- 条形宽度固定,不会随总数据量增加被压缩
内容的提问来源于stack exchange,提问作者Woden
相关产品推荐
相关产品推荐

