Mac环境下逐行执行Pandas hist绘图时图表无法更新的问题
Mac环境下逐行执行Pandas hist绘图时图表无法更新的问题
我最近碰到了一个挺奇怪的Pandas绘图问题,在Mac上逐行执行hist()方法时会出现异常,但Windows上完全正常。下面是具体的问题细节和我做过的排查:
复现代码
import pandas as pd import numpy as np n = np.nan a = [1,2,3,4,5,1,2,3,4,5.0,n,n,n,n,n,n] b = [1,1,1,2,2,2,3,3,3,4.0,6,7,8,n,n,n] d = {'a':a,'b':b} df = pd.DataFrame(d) # 先执行这行,等图表弹出后再执行下一行 df.b.hist() # 单独执行这行代码 df.a.hist()
不同系统的表现
- Windows系统:两次绘图都能正常显示,和预期一致;
- Mac系统:如果逐行分开执行(等第一幅图加载完成后再运行第二行),会出现绘图异常;但如果一次性运行所有代码,就能得到正确的结果。
遇到的警告与环境配置
在Mac上首次触发绘图时,我还收到了这条警告信息:
qt.qpa.drawing: Layer-backing can not be explicitly controlled on 10.14 when built against the 10.14 SDK
我的环境参数如下:
- Python 3.9.12
- IPython 7.33.0
- Matplotlib 3.5.2
- Pandas 1.5.3
- Mac OS 12.6.3
- Spyder 5.3.0
- 图形后端:自动(Qt 5.12.9 | PyQt5 5.12.3 | Darwin 21.6.0)
尝试过的解决方法
我尝试把图形后端切换为Tkinter,这时候之前的警告消失了,但绘图异常的问题还是没有解决。
备注:内容来源于stack exchange,提问作者Jimbo
相关产品推荐
相关产品推荐

