Python Pycharm不显示情节

Python Pycharm不显示情节,python,matplotlib,pycharm,Python,Matplotlib,Pycharm,Pycharm不显示以下代码中的绘图: import pandas as pd import numpy as np import matplotlib as plt ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) ts = ts.cumsum() ts.plot() 发生的情况是,一个窗口出现不到一秒钟,然后再次消失 在相同的代码上使用Pyzo IEP IDE

Pycharm不显示以下代码中的绘图:

import pandas as pd
import numpy as np
import matplotlib as plt

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))

ts = ts.cumsum()    
ts.plot()
发生的情况是,一个窗口出现不到一秒钟,然后再次消失

在相同的代码上使用Pyzo IEP IDE(使用相同的解释器),该图将按预期显示

…所以问题一定是在Pycharm上设置的。 我尝试过使用python.exe和pythonw.exe作为解释器,结果都是一样的

这是我的系统信息:

C:\pyzo2014a\pythonw.exe -u C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevconsole.py 57315 57316
PyDev console: using IPython 2.1.0import sys; print('Python %s on %s' % (sys.version, sys.platform))
Python 3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, 13:02:30) [MSC v.1600 64 bit (AMD64)] on win32
sys.path.extend(['C:\\Users\\Rasmus\\PycharmProjects\\untitled2'])
In[3]: import IPython
print(IPython.sys_info())
{'commit_hash': '681fd77',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': 'C:\\pyzo2014a\\lib\\site-packages\\IPython',
 'ipython_version': '2.1.0',
 'os_name': 'nt',
 'platform': 'Windows-8-6.2.9200',
 'sys_executable': 'C:\\pyzo2014a\\pythonw.exe',
 'sys_platform': 'win32',
 'sys_version': '3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, '
                '13:02:30) [MSC v.1600 64 bit (AMD64)]'}

我也有同样的问题。检查
plt.isinteractive()
是否为真。将其设置为“False”对我有帮助

plt.interactive(False)

我找到了解决办法。这对我很有用:

import numpy as np
import matplotlib.pyplot as plt

points = np.arange(-5, 5, 0.01)
dx, dy = np.meshgrid(points, points)
z = (np.sin(dx)+np.sin(dy))
plt.imshow(z)
plt.colorbar()
plt.title('plot for sin(x)+sin(y)')
plt.show()

我意识到这很古老,但我想我应该为其他旅行者澄清一个误解。将
plt.pyplot.isinteractive()
设置为
False
意味着将根据要绘制的特定命令绘制绘图(即
plt.pyplot.show()
)。将
plt.pyplot.isinteractive()
设置为
True
意味着每个
pyplot
plt
)命令将触发绘图命令(即
plt.pyplot.show()
)。因此,您很可能要查找的是在程序末尾显示图形的
plt.pyplot.show()


作为补充说明,您可以使用以下导入命令将这些语句稍微缩短一点,方法是使用
import matplotlib.pyplot As plt
而不是
matplotlib As plt

我在这里能够得到一些其他建议的组合,但只有在切换
plt.interactive(False)时才有效
True
再返回

plt.interactive(True)
plt.pyplot.show()
这将使我的情节更加精彩。然后设置为
False
允许查看

plt.interactive(False)
plt.pyplot.show()
如前所述,在所有窗口关闭之前,我的程序不会退出。以下是有关我当前运行环境的一些详细信息:

Python version 2.7.6
Anaconda 1.9.2 (x86_64)
(default, Jan 10 2014, 11:23:15) 
[GCC 4.0.1 (Apple Inc. build 5493)]
Pandas version: 0.13.1

DanT的评论为我修复了这个问题,在带有GTKagg后端的linux上,matplotlib和pycharm。导入matplotlib时,我会出现以下错误:

>>> import matplotlib as mpl

Backend GTKAgg is interactive backend. Turning interactive mode on.
Failed to enable GUI event loop integration for 'gtk'
当绘制类似的图形时:

from matplotlib import pyplot as plt
plt.figure()
plt.plot(1,2)
plt.show()
将弹出一个图形屏幕,但不显示任何图表。 使用:


正确显示图形。

我的问题是matplotlib使用了错误的后端。我在用Debian Jessie

在控制台中,我执行了以下操作:

import matplotlib
matplotlib.get_backend()
    plt.bar(range(len(predictors)), scores)
    plt.xticks(range(len(predictors)), predictors, rotation='vertical')
    plt.show()
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 6.28, 100)

plt.plot(x, x**0.5, label='square root')
plt.plot(x, np.sin(x), label='sinc')

plt.xlabel('x label')
plt.ylabel('y label')

plt.title("test plot")

plt.legend()

plt.show(block=True)
plt.interactive(False)
结果是:“agg”,而这应该是“TkAgg”

解决办法很简单:

  • 通过pip卸载matplotlib
  • 安装适当的库:sudo apt get Install tcl dev tk python tk python3 tk
  • 再次通过pip安装matplotlib

  • 就我而言,我想做以下几点:

    import matplotlib
    matplotlib.get_backend()
    
        plt.bar(range(len(predictors)), scores)
        plt.xticks(range(len(predictors)), predictors, rotation='vertical')
        plt.show()
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 6.28, 100)
    
    plt.plot(x, x**0.5, label='square root')
    plt.plot(x, np.sin(x), label='sinc')
    
    plt.xlabel('x label')
    plt.ylabel('y label')
    
    plt.title("test plot")
    
    plt.legend()
    
    plt.show(block=True)
    plt.interactive(False)
    
    在这里混合使用了多种解决方案之后,我的解决方案是在此之前添加以下命令:

        matplotlib.get_backend()
        plt.interactive(False)
        plt.figure()
    
    与以下两个进口

       import matplotlib
       import matplotlib.pyplot as plt
    

    在我的情况下,似乎所有命令都是必需的,带有ElCapitan和PyCharm 2016.2.3的MBP。你好

    我尝试了不同的解决方案,但最终对我有效的是
    plt.show(block=True)
    。您需要在
    myDataFrame.plot()命令之后添加此命令,此命令才能生效。如果有多个plot,只需在代码末尾添加命令。它将允许您查看正在打印的所有数据

    对于初学者,您可能还希望确保自己是,而不是像常规Python代码那样。这是相当容易做到的

    对我有用。(PyCharm/OSX)

    打电话后不久

    plt.imshow() 
    
    召唤

    您将获得带有图像的matplotlib弹出窗口


    这是一条拦路。在pop关闭之前,将不会运行进一步的脚本。

    我在我的Pycharm版本(社区版2017.2.2)中测试,您可能需要宣布plt.interactive(False)和plt.show(block=True),如下所示:

    import matplotlib
    matplotlib.get_backend()
    
        plt.bar(range(len(predictors)), scores)
        plt.xticks(range(len(predictors)), predictors, rotation='vertical')
        plt.show()
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 6.28, 100)
    
    plt.plot(x, x**0.5, label='square root')
    plt.plot(x, np.sin(x), label='sinc')
    
    plt.xlabel('x label')
    plt.ylabel('y label')
    
    plt.title("test plot")
    
    plt.legend()
    
    plt.show(block=True)
    plt.interactive(False)
    
    只用

    plt.show()
    
    此命令告诉系统以Pycharm绘制绘图

    例如:

    plt.imshow(img.reshape((28, 28)))
    plt.show()
    

    我在PyCharm 2017.1.2上测试了我的版本。我使用了interactive(True)和show(block=True)


    我的环境:macOS&anaconda3

    这对我很有用:

    matplotlib.use('macosx')
    
    或互动模式:

    matplotlib.use('TkAgg')
    

    在非交互式环境中,我们必须使用plt.show(block=True)

    只要添加
    plt.pyplot.show()
    ,就可以了


    最好的解决方案是禁用SciView。

    以上所有方法都不适用于我,但以下方法确实有效:

  • 禁用pycharm
    settings>Tools>Python Scientific
    中的复选框(在工具窗口中显示绘图)

  • 我收到错误
    未找到PyQt5模块
    。继续安装
    PyQt5
    ,使用:

    sudo apt-get install python3-pyqt5
    

  • 请注意,对于某些人来说,只有第一步就足够了,而且可以工作。

    需要为pycharm设置一个属性。

    import matplotlib.pyplot as plt
    
    plt.interactive(False)  #need to set to False
    
    dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
    
    plt.show()
    
    将导入更改为:

    import matplotlib.pyplot as plt
    
    或使用以下行:

    plt.pyplot.show()
    

    对于那些在IDE中运行脚本(而不是在python控制台或笔记本等交互式环境中工作)的人,我发现这是最直观、最简单的解决方案:

    plt.imshow(img)
    plt.waitforbuttonpress()
    

    它显示该图并等待用户单击新窗口。只有这样它才能恢复脚本并运行其余的代码。

    我正在使用Ubuntu,并按照上面@Arie所说的那样进行了尝试,但仅在终端中使用这一行:

    sudo apt-get install tcl-dev tk-dev python-tk python3-tk
    

    成功了

    在Pycharm中,Matplotlib.plot有时不会显示


    因此,在调用
    plt.show()
    之后,在右侧工具栏中检查SciView。在SciView中,将存储生成的每个绘图

    我遇到了这个问题,我可以解决它,你可以试试我的方法。。
    从设置-->工具-->python scientific中禁用“在工具窗口中显示绘图”

    当我试图绘制直方图时,我遇到了上面的错误,下面的点对我有效

    plt.interactive(False)
    
    OS:MacCatalina 10.15.5

    Pycharm版本:社区版2019.2.3

    Python版本:3.7

  • 我将导入语句更改如下(从-更改为)
  • 发件人:

    将matplotlib.pylab作为plt导入

    致:

    将matplotlib.pyplot导入为plt

  • 和plot语句如下(将我的命令格式pyplot更改为plt)
  • 发件人: