我决定设置一个自定义的matplotlibrc
,因此我需要为选择一个后端matplotlib
。从不需要安装其他附加软件包的角度来看,最好的是什么?
我倾向于matplotlib
通过来使用ipython --pylab
,所以我想要基于交互式窗口的图表(当我不需要时,我可以切换到Agg
)。
我已经尝试过了WXAgg
,但是这需要(足够合理的) WX。
答案1
Agg
和都不TkAgg
需要 Python 标准库之外的任何依赖项。
我遇到了一些与TkAgg
多线程有关的问题,因此如果您只需要保存到文件(而不是plt.show()
),我建议使用Agg
(只需将其替换到TkAgg
下面出现的位置)。
将以下行添加到您的~/.config/matplotlib/matplotlibrc
:
backend: TkAgg
或者将以下几行添加到你的 python 文件中:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
答案2
import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,100)
y = np.sin(x)
plt.plot(x,y)
plt.show()
据我所知,PyQt5 是 Matplotlib 的最佳后端。即使在运行程序后,它也允许进行所有编辑。要使用它,
import matplotlib
matplotlib.use('Qt5Agg')
在拨打电话之前请先
import matplotlib.pyplot as plt
注意:你需要安装 PyQt5
通过 pip 安装,运行命令
pip install PyQt5
答案3
与在单独窗口中绘图相比,我更喜欢使用 matplotlib 的内联绘图,因为这样当我对 Python 代码进行微调时,我可以更轻松地看到自己在做什么。
面向科学家的 Python IDE(蜘蛛)可以进行内联绘图。要试用此功能,请打开终端并输入:
sudo apt install python2.7 python-matplotlib spyder ipython # Python 2.x in Ubuntu 18.04 and earlier
或者
sudo apt install python3 python3-matplotlib spyder3 ipython3 # Python 3.x
在 IPython 控制台中的 ipython 提示符后复制/粘贴以下代码并按下Enter键来运行它。
import matplotlib.pyplot as plt
x, y = [-1, 12], [1, 4]
plt.plot(x, y, marker = 'o')
安装了 Hydrogen 软件包的 Atom 文本编辑器也可以进行内联绘图。我发现 Atom 界面的配置比 Spyder 更复杂,在 Spyder 中,使用 matplotlib 进行内联绘图是开箱即用的。我开始在 Atom 中进行内联绘图是因为我想使用 Atom 与其他编程语言一起制作内联绘图。