Windows下plotnine geom_col报错及Linux异常绘图的解决方案求助
Windows 10环境下AttributeError错误解决
原因
plotnine 0.12.2与高版本mizani(≥0.13.0)不兼容:mizani 0.13.0+移除了identity_trans类的dataspace_is_numerical属性,但plotnine 0.12.2仍在调用该属性,触发报错。
解决方法
安装与plotnine 0.12.2兼容的mizani版本:
pip uninstall -y mizani pip install mizani==0.11.4
重新运行代码即可正常生成图表。
Linux Ubuntu环境下交换轴后绘图异常修复
原因
交换x、y轴后,geom_col默认的position_stack堆叠逻辑与分类类型的y轴不兼容,导致图表显示异常。
修复方案
方案1:用coord_flip()转置坐标轴(推荐)
保留原变量映射,通过转置实现横向柱状图,避免堆叠冲突:
import pandas as pd from plotnine import ggplot, aes, geom_col, coord_flip from plotnine.data import mtcars df = mtcars.loc[:, ["name", "disp"]].drop_duplicates(subset="name") (ggplot(df, aes(x="name", y="disp")) + geom_col() + coord_flip())
方案2:禁用堆叠逻辑
若坚持交换轴变量,指定position="identity"关闭堆叠:
import pandas as pd from plotnine import ggplot, aes, geom_col from plotnine.data import mtcars df = mtcars.loc[:, ["name", "disp"]].drop_duplicates(subset="name") (ggplot(df, aes(x="disp", y="name")) + geom_col(position="identity"))
方案3:升级plotnine
将plotnine升级到0.12.2及以上版本,新版本优化了分类轴的堆叠逻辑:
pip install --upgrade plotnine
内容的提问来源于stack exchange,提问作者luifrancgom
相关产品推荐
相关产品推荐

