【问题标题】:When do I have to use plt.show()? [duplicate]我什么时候必须使用 plt.show()? [复制]
【发布时间】:2020-03-06 10:43:18
【问题描述】:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)  
df_new = pd.DataFrame(np.random.randn(5,3), columns=list('ABC'))

df_new.plot(kind='bar')

我不知道是否必须使用plt.show() 的天气。因为如果只有df_new.plot(kind='bar'),它将显示情节。如果我添加plot.show(),它也会显示。它们之间有什么区别?我使用 Jupyter。提前致谢。

【问题讨论】:

  • 取决于 IDE。这是 Jupyter 还是别的什么?在显示图形之前,您可能需要做很多事情,但我想其他事情足够聪明,可以知道脚本已经结束并且您希望在绘图窗口中进行绘图
  • 默认情况下你需要plt.show,但有些环境(较新的ipython和jupyter等)会自动为你启用交互模式(plt.ion()),这意味着你不要 i> 必须调用它来获取您的数据。另见the official FAQ

标签: python python-3.x pandas


【解决方案1】:

我猜你正在使用像 jupyter 这样的交互式工具。
如果你说的 jupyter df.plot(kind ='bar') 显示图表。
在交互式工具中,您需要在创建所有绘图时使用plt.show()

  import matplotlib.pyplot as plt
  plt.plot(x, y)
  plt.plot(y,z)
  plt.show()

在 python IDLE 中,如果你只使用df.plot((kind = 'bar'),它不会在运行时显示图形。
要在 IDLE 中不使用 plt.show() 来显示图表,您可以按照以下步骤操作。

 import matplotlib.pyplot as plt
 from matplotlib import interactive
 import pandas as pd
 import numpy as np

 #Set interactive mode to True
 interactive(True)
 df = pd.DataFrame(np.random.randn(5,3), columns = list('ABC'))
 df.plot(kind = 'bar')

我希望这能回答你的问题。

【讨论】:

    【解决方案2】:

    df_new.plot(kind='bar') 将实例化并返回 plt 的对象,类似于:"",因此您必须为此对象调用 plt.show() 才能看到您的绘图。这是调用 plt.show(); 时发生的情况; show() 函数将绘制 plt 的最后创建对象的绘图属性。希望能帮助到你。

    【讨论】:

    • 你在jupyter中看到图的原因是在jupyter中你会看到你的代码sn-p中执行的最后一个操作的结果,例如:如果你写7+5作为最后一行尽管您没有编写 print(7+5),但您的代码 sn-p 并执行代码 12 将显示为结果。
    【解决方案3】:

    我试过你的代码,没有plt.show(),这个图没有显示。我认为这取决于您使用的 IDE。所以请使用plt.show() 进行重现。

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 2016-10-22
      • 2014-11-08
      • 2013-10-23
      • 1970-01-01
      相关资源
      最近更新 更多