让matplotlib工作 - 没有显示

时间:2015-06-01 09:49:25

标签: python macos matplotlib plot

我能够成功安装matplotlib;但是,当我运行我的代码时,我没有收到错误,而是Python图标一遍又一遍地弹跳。

Python

我不知道它是否与

有关
from rcParamsSettings import *

我不知道那是什么,但是如果我试着用那条未注释的那条线来运行它,我会得到

ImportError: No module named rcParamsSettings

这是我正在尝试运行的代码:

import pylab
#from rcParamsSettings import *
import random

def flipPlot(minExp, maxExp):
    """Assumes minExp and maxExp positive integers; minExp < maxExp
       Plots results of 2**minExp to 2**maxExp coin flips"""
    ratios = []
    diffs = []
    xAxis = []
    for exp in range(minExp, maxExp + 1):
        xAxis.append(2**exp)
    for numFlips in xAxis:
        numHeads = 0
        for n in range(numFlips):
            if random.random() < 0.5:
                numHeads += 1
        numTails = numFlips - numHeads
        ratios.append(numHeads/float(numTails))
        diffs.append(abs(numHeads - numTails))
    pylab.title('Difference Between Heads and Tails')
    pylab.xlabel('Number of Flips')
    pylab.ylabel('Abs(#Heads - #Tails)')
    pylab.plot(xAxis, diffs)
    pylab.figure()
    pylab.title('Heads/Tails Ratios')
    pylab.xlabel('Number of Flips')
    pylab.ylabel('#Heads/#Tails')
    pylab.plot(xAxis, ratios)

random.seed(0)
flipPlot(4, 20)

要使代码运行,我需要做什么?

注意:我在编程和Python方面的经验非常有限;我刚开始。

2 个答案:

答案 0 :(得分:1)

您需要使用pylab.show()否则不会出现任何内容。

请参阅此处的示例:http://matplotlib.org/examples/pylab_examples/simple_plot.html

(虽然您应该避免使用from pylab import *,但导入的方式很好。)

MatPlotLib中有些情况您不想显示图表。我的一个例子是使用自动化过程收集的数据在服务器上设计图形。服务器没有屏幕,只能由终端访问,因此尝试显示图形将导致错误,因为没有设置DISPLAY变量(没有要显示的屏幕)。

在这种情况下,使用pylab.savefig()将图保存在某处是正常的,然后可以通过电子邮件发送或使用ftp将其发送到可以查看的地方。

由于此MatPlotLib不会隐式显示图表,因此必须要求它显示。

答案 1 :(得分:1)

如果我添加pylab.show(),您的代码将适用于我。

或者,您可以将绘图保存到文件中:

pylab.savefig("file.png")

如果您经常更新您的情节,这是有道理的。