Plots不会一直出现在PyCharm IPython笔记本中

时间:2017-03-08 19:10:03

标签: python matplotlib ipython jupyter

MATLAB - > Python转换尝试让IPython笔记本工作。在Windows 7上通过Anaconda2运行PyCharm 2016.3.2和Python 2.7.13。

我有一台IPython笔记本,在我的机器Jupyter上运行得很好,我试图在浏览器之外运行。显示行为的最小工作示例分为两个单元格。第一个单元格是函数定义(为了演示目的而减少),第二个单元格(以及后续单元格未显示)重复调用第一个:

def spectrumPlot(NspectraFiles, laserLines, gaussAmp):

    import numpy as np
    import matplotlib.pyplot as plt



    def rgb(r, g, b):
        outMap = (float(r)/255, float(g)/255, float(b)/255)
        return outMap

    def gaussian(x, mu, sig):
        return np.exp(-np.power(x - mu, 2.) / (2 * np.power(sig, 2.)))

    def genData(gaussAmp):

        csv = np.empty([550, 3])
        csv[:,0] = np.linspace(350, 900, 550)
        csv[:,1] = gaussAmp*gaussian(csv[:,0], np.random.rand(1)*550 + 350, 100)
        csv[:,2] = gaussAmp*gaussian(csv[:,0], np.random.rand(1)*550 + 350, 100)

        return csv



    fluorColorCycle = [rgb(155, 89, 182),
                       rgb(52, 152, 219),
                       rgb(46, 204, 113),
                       rgb(230, 126, 34),
                       rgb(192, 57, 43)]

    for k in range(0, NspectraFiles):

        dataHere = genData(gaussAmp)

        plt.plot(dataHere[:,0], dataHere[:,1], color=fluorColorCycle[k], ls = '--', linewidth=0.5)
        plt.plot(dataHere[:,0], dataHere[:,2], color=fluorColorCycle[k], linewidth = 2)

    # Add in lasers

    for k in range(0, len(laserLines)):

        plt.plot([laserLines[k], laserLines[k]], [0, 100], color = fluorColorCycle[k], linewidth = 5)

    plt.xlabel('Wavelength (nm)', fontsize=14)
    plt.ylabel('Intensity (a.u.)', fontsize=14)
    plt.rcParams["figure.figsize"] = [10, 5]
    plt.xlim(350, 900)

    plt.show()
NspectraFiles = 5

laserLines = [405, 488, 561, 637, 730]

spectrumPlot(NspectraFiles, laserLines, 45)

在执行这两个单元格后应该发生的是我得到的图表在指示的'laserLines'位置显示一些垂直彩色条,幅度为100,NspectraFiles随机放置第三个参数幅度的高斯峰到spectrumPlot (45这里)。 但是如果第三个参数大于45,那么情节并不总是出现。如果它在~44-50之间,那么该图将出现,但不会

我尝试过设置

%matplotlib inline

在第一个单元格的import语句下。这使得图表可靠地出现,但我似乎无法使用

重新调整它们的大小
plt.rcParams["figure.figsize"] 

属性。

有关为什么根据计算参数不会出现图表的任何帮助?或者一个解决方法,让我仍然可以修改绘图大小?

0 个答案:

没有答案