设置:Anaconda 3 (Win10 64)、Spyder 4 和 Python 3.7。IPython Graphics 设置是默认的(内联)。我仍然是 Python 新手,但我环顾四周,到目前为止还没有找到解决我的问题的答案。预先感谢大家。
因此,在此设置中,每当我使用 matplotlib 创建绘图时,它都会出现在 Spyder 的绘图窗格中。例如
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(100, 1)), columns=list('A'))
bp = df.boxplot(column = 'A')
Run Code Online (Sandbox Code Playgroud)
创建箱线图。现在,如果我想为绘图添加标题,代码将是
bp.set_title("This Title")
Run Code Online (Sandbox Code Playgroud)
这就是我遇到一些问题的地方。如果我一起运行整个块
df = pd.DataFrame(np.random.randint(0,100,size=(100, 1)), columns=list('A'))
bp = df.boxplot(column = 'A')
bp.set_title("This Title")
Run Code Online (Sandbox Code Playgroud)
然后我得到一个以“This Title”为标题的箱线图,显示在绘图窗格中, 这就是我想要的。
但是,如果我在 IPython 控制台中逐行运行上述代码,第二行将按预期生成箱线图,但第三行不会对绘图窗格中的图像产生影响,因此绘图窗格中的图像仍然没有标题
现在,如果我转到“工具”>“首选项”>“IPython 控制台”>“图形”并将图形后端设置为“自动”而不是默认的“内联”,那么当我在控制台中逐行运行代码时,我会得到一个在另一个窗口中弹出的图像,并且它确实根据输入到控制台的新行进行更新/刷新。我知道内联图应该是静态的,但我想我看到了另一篇文章,有人说可以更新内联图?所以现在我的问题是:
plt.show()
plt.draw()
bp.get_figure().canvas.draw()
Run Code Online (Sandbox Code Playgroud)
但这些都不会更新绘图窗格中的图像。我认为即使我无法 …