Getdist图未显示在控制台中

时间:2019-03-07 10:42:22

标签: python matplotlib plot jupyter

我正在使用getdist绘制一些模拟结果。 在jupyter中仅写此行

g = plots.getSubplotPlotter()
g.triangle_plot([samples, samples2], filled=True)

Python将显示here中的图。

现在,如果我们想用Python shell编写并使用IDLE运行它,则不会产生任何绘图。 plt.show()在这里不起作用。

如何指示python或matplotlib显示图并保存?

1 个答案:

答案 0 :(得分:1)

问题是getdist将后端设置为Agg(在this line中),这是一个非交互式后端,因此无法通过plt.show()生成交互式图形。
这是非常糟糕的样式,因为用户应该选择后端而不是程序包。您可能想将这个设计缺陷告知开发人员。

无论如何,在导入getdist后,可以通过plt.switch_backend(..)切换后端。作为后端,您需要使用任何可用的交互式后端,例如"Qt5Agg""TkAgg"

import numpy as np
from getdist import plots, MCSamples
import matplotlib.pyplot as plt

plt.switch_backend("Qt5Agg")

# .. some code ..

g = plots.getSubplotPlotter()
g.triangle_plot([samples, samples2], filled=True)

plt.show()