gpt4 book ai didi

python-3.x - 是否可以在 Python (Spyder) 中更新内联图?

转载 作者:行者123 更新时间:2023-12-03 23:09:13 25 4
gpt4 key购买 nike

设置:Anaconda 3 (Win10 64)、Spyder 4 和 Python 3.7。 IPython 图形设置是默认设置(内联)。我仍然是 Python 新手,但我环顾四周,到目前为止还没有找到解决我问题的答案。提前感谢大家。

因此,在此设置中,每当我使用 matplotlib 创建绘图时,它都会出现在 Spyder 的绘图 Pane 中。例如

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')

创建一个箱线图。现在,如果我想为情节添加标题,代码将是
bp.set_title("This Title")

这是我遇到一些问题的地方。如果我一起跑整个街区
df = pd.DataFrame(np.random.randint(0,100,size=(100, 1)), columns=list('A'))
bp = df.boxplot(column = 'A')
bp.set_title("This Title")

然后我得到一个以“This Title”为标题的箱形图,显示在绘图 Pane 中,
which is what I want.

但是,如果我在 IPython 控制台中逐行运行上述代码,第 2 行将按预期生成箱线图,但第 3 行不会对绘图 Pane 中的图像产生影响,所以 the image in the plot pane still do not have a title

现在,如果我转到工具 > 首选项 > IPython 控制台 > 图形并将图形后端设置为自动而不是默认的内联,那么当我在控制台中逐行运行代码时,我会在另一个窗口中弹出一个图像,并且它 根据输入到控制台的新行更新/刷新。我知道内联图应该是静态的,但我想我看到另一个帖子有人说它 可以更新内联图吗?所以现在我的问题是:
  • 如果图形后端为 ,则仅在 IPython 控制台中按行代码更新/刷新绘图不是 像内联一样静态?
  • 为什么我在逐行运行代码块时会得到不同的结果?
  • 如果可以更新内联图(最好在 Spyder 的绘图 Pane 中),你是怎么做的?我尝试了各种方法来重绘绘图,例如
  • plt.show()
    plt.draw()
    bp.get_figure().canvas.draw()

    但这些都不会更新绘图 Pane 中的图像。我想即使我不能 更新 图片,我至少应该可以 重绘 它(即第二个图像出现在具有更新特征的绘图 Pane 中)。但到目前为止,我没有尝试过任何工作。请指教并再次感谢。

    最佳答案

    (这里是 Spyder 维护者)关于您的问题:

    Do plots only update/refresh by line codes in the IPython console if the Graphics Backend is not static like inline?



    正确的。

    Why do I get different result when I run code blocks vs line by line?



    因为当您运行代码单元(我认为您的意思是“代码块”)时,您的绘图显示在该代码的末尾,因此它需要您在中间行中对其进行的所有修改。

    If it is possible to update the inline plots (preferably in the plot pane of Spyder), how do you do it?



    不,这是不可能的。正如您在上面正确提到的,内联图是静态图像,因此无法修改。

    关于python-3.x - 是否可以在 Python (Spyder) 中更新内联图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59816675/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com