Altair绘制散点图输出空图无数据点的问题排查
问题根因
你遇到的Altair空图问题和控制台的source map警告完全无关,该警告只是缺失了调试用的映射文件,不影响图表渲染功能。
导致空图的核心原因是:
- 你在定义X/Y轴编码时,使用了
字段名:类型的简写语法,而你的字段名FP32 (single precision) Performance [FLOP/s]中包含括号、方括号等Vega-Lite语法的特殊字符,Altair解析字段名时出现识别错误,无法匹配到DataFrame中对应的列,因此没有数据点渲染。 - 次要优化点:你手动设置的坐标轴
domain完全贴合数据的最小/最大值,没有预留边距,可能导致边缘数据点被裁切。
修复方案
将X/Y轴的定义改为显式指定field和type参数,避免特殊字符解析问题,示例代码如下:
alt.themes.enable('fivethirtyeight') alt.Chart(df).mark_circle(size=60).encode( x=alt.X( field=x_axis, type='quantitative', scale=alt.Scale( domain=(df[x_axis].min(), df[x_axis].max()), padding=5 # 可选,添加边距避免边缘点被裁切 ), axis=alt.Axis(format=".0f") ), y=alt.Y( field=y_axis, type='quantitative', scale=alt.Scale( domain=(df[y_axis].min(), df[y_axis].max()), padding=5 ), axis=alt.Axis(format=".1e") ), )
如果修改后还是无法显示,可以在代码最后显式调用.show()方法触发渲染:
chart = alt.Chart(df).mark_circle(size=60).encode(...) chart.show()
内容的提问来源于stack exchange,提问作者Jsevillamol
相关产品推荐
相关产品推荐

