《Python Crash Course》自定义Tooltip报错:ValueError参数长度不匹配
解决Plotly hover_name长度不匹配的ValueError问题
这个错误的核心是**hover_name参数的元素数量和x、y轴数据的数量不匹配**——你的x/y数据有30条,但hover_name只传了1条,Plotly要求所有关联数据的长度必须完全一致。
下面是最常见的几个出错点和修复方法:
缩进错误导致hover_texts只生成1条数据
如果你把向hover_texts添加元素的代码放在了遍历仓库的循环外面,就会只生成一条文本。比如错误写法:hover_texts = [] for repo in response_dict['items']: x_values.append(repo['name']) y_values.append(repo['stargazers_count']) # 缩进错误,仅在循环结束后添加一次 hover_texts.append(f"仓库: {repo['name']}\n描述: {repo['description']}")修复后要把append放在循环内部,确保每个仓库都对应一条悬浮文本:
hover_texts = [] for repo in response_dict['items']: x_values.append(repo['name']) y_values.append(repo['stargazers_count']) # 缩进正确,每个仓库都添加一条文本 hover_texts.append(f"仓库: {repo['name']}\n描述: {repo['description']}")hover_name参数传错了值
检查你调用px.bar()的代码,是不是误把单个字符串传给了hover_name(比如hover_name="仓库信息"),而不是生成好的hover_texts列表。必须保证hover_name=hover_texts,绑定的是长度为30的列表。数据过滤导致长度不一致
如果你的代码里有条件判断(比如跳过没有描述的仓库),但只过滤了x/y数据,没同步处理hover_texts,也会导致长度不匹配。可以在绘图前加一行打印验证:print(len(x_values), len(y_values), len(hover_texts))三个数值必须完全相等,否则排查循环里的条件逻辑,确保每处理一个x/y数据,就对应添加一条hover文本。
内容的提问来源于stack exchange,提问作者Paulo Rivera
相关产品推荐
相关产品推荐

