Pandas散点图指定colormap时X轴标签与次刻度标签不显示问题
问题结论
这是 pandas 1.3.x 版本与 matplotlib 3.4.x 版本的已知兼容问题,可以稳定复现,不属于代码逻辑错误。
问题原因
调用df.plot.scatter时指定colormap参数,pandas 内部绘制色条的逻辑会错误覆盖主坐标轴的 x 轴标签、刻度的可见状态,直接调用ax2.set_xlabel无效的原因是该操作的属性被色条逻辑的后置修改覆盖。
解决方案
方案1:升级依赖版本
将 pandas 升级到 1.4.0 及以上版本,或者将 matplotlib 降级到 3.3.x 版本,该兼容问题已在后续版本迭代中修复。
方案2:不修改依赖的临时修复
在绘图代码后添加几行手动配置代码即可恢复显示:
import matplotlib.pyplot as plt ax2 = df.plot.scatter(x='length', y='width', c='species', colormap='viridis') # 手动开启x轴可见性 ax2.xaxis.set_visible(True) # 手动设置x轴标签 ax2.set_xlabel("length") # 调整布局避免色条挤压x轴显示空间 plt.tight_layout()
内容的提问来源于stack exchange,提问作者marianoju
相关产品推荐
相关产品推荐

