【问题标题】:Python matplotlib.pyplot not showing graphPython matplotlib.pyplot 不显示图形
【发布时间】:2018-06-19 05:17:48
【问题描述】:

这是我的问题:

我正在学习 python。我正在尝试显示 1 个带有 4 个子图的图表。

我第一次使用plt.show(),我得到了我的数字。第二次,我什么也没得到。

有谁知道为什么以及如何解决这个问题?

这是我的代码:

>>> import seaborn as sns
>>> import matplotlib.pyplot as plt

>>> anscombe = sns.load_dataset("anscombe")

>>> dataset_1 = anscombe[anscombe['dataset'] == 'I']
>>> dataset_2 = anscombe[anscombe['dataset'] == 'II']
>>> dataset_3 = anscombe[anscombe['dataset'] == 'III']
>>> dataset_4 = anscombe[anscombe['dataset'] == 'IV']

>>> fig = plt.figure()
>>> axes1 = fig.add_subplot(2,2,1)
>>> axes2 = fig.add_subplot(2,2,2)
>>> axes3 = fig.add_subplot(2,2,3)
>>> axes4 = fig.add_subplot(2,2,4)
>>> axes1.plot(dataset_1['x'], dataset_1['y'], 'o')
[<matplotlib.lines.Line2D object at 0x000002088592D8D0>]
>>> axes2.plot(dataset_2['x'], dataset_2['y'], 'o')
[<matplotlib.lines.Line2D object at 0x000002088592DE80>]
>>> axes3.plot(dataset_3['x'], dataset_3['y'], 'o')
[<matplotlib.lines.Line2D object at 0x0000020885941A58>]
>>> axes4.plot(dataset_4['x'], dataset_4['y'], 'o')
[<matplotlib.lines.Line2D object at 0x0000020885941A20>]

>>> plt.show()
>>> plt.show()

编辑: 我搜索了其他帖子,但他们没有帮助我。我特别搜索的一个是这个:Thread that did not help

【问题讨论】:

标签: python-3.x matplotlib


【解决方案1】:

我在这里matplotlib usage faqmatplotlib show() doesn't work twice 做了一些研究。

这是我学到的:

  1. 有交互和非交互模式。
  2. 使用交互模式时,不要关闭它,因为它会在内存中完全擦除。让图形保持打开状态,它会随着您绘制更多线条或对其进行任何操作而更新。
  3. 在使用非交互模式时,您可以绘制任意多的线条,但是一旦您调用 show() 方法,所有内容都会在内存中删除,您必须重新绘制它然后然后 调用show() 方法一次绘制所有内容。
  4. 在使用非交互模式和使用show() 方法时,所有命令都会停止,直到图形关闭。
  5. 目前没有解决方案来显示一个图形,然后重新显示它而不重新绘制相同的线。
  6. 您应该检查一下默认模式是交互式还是非交互式。
  7. 要转换为交互模式,请使用matplotlib.pyplot.ion() 方法。
  8. 要使用非交互模式,请使用matplotlib.pyplot.ioff()

我的问题已经解决了。

【讨论】:

    猜你喜欢
    • 2021-03-12
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2014-03-08
    • 2017-03-12
    • 2020-07-16
    相关资源
    最近更新 更多