为什么pyplot绘制的框架区域是黑色的?

时间:2015-11-27 10:18:29

标签: python matplotlib

我的测试代码是

import numpy as np
import time
import matplotlib
from matplotlib import pyplot as plt

def run(genxy, style='point'):
    fig, ax = plt.subplots(1, 1)
    #ax.set_aspect('equal')
    ax.set_xlim(0, 5.2)
    ax.set_ylim(-1.1, 1.1)
    ax.hold(True)

    plt.show(False)
    plt.draw()

    background = fig.canvas.copy_from_bbox(ax.bbox)

    x, y = genxy.next()
    if style == 'point':
        sincurve = ax.plot(x, y, '.')[0]
    else:
        sincurve = ax.plot(x, y)[0]

    while True:
        try:
            x, y = genxy.next()
        except StopIteration:
            break
        sincurve.set_data(x, y)
        # restore background
        fig.canvas.restore_region(background)
        # redraw just the points
        ax.draw_artist(sincurve)
        # fill in the axes rectangle
        fig.canvas.blit(ax.bbox)
        time.sleep(0.1)

    plt.close(fig)

from copy import copy
X = np.arange(0, 5, 0.1)

def generate_curve(x):
    x = copy(x)
    y = np.sin(x)
    for i in range(0, len(y)):
        yield x[0:i+1], y[0:i+1]
genxy = generate_curve(X)
run(genxy, 'line')

截图图片是

enter image description here

还有更多警告打印出来

  

QGtkStyle无法解析GTK。确保你已经安装了   适当的图书馆。

我的python是2.7,我的系统是LMDE2(Linux Mint Debian Edition 2)。

1 个答案:

答案 0 :(得分:0)

查看matplolibrc文件 - 其中包含所有绘图默认值。在我的Windows系统上它就在这里:
C:\Python27\Lib\site-packages\matplotlib\mpl-data\matplotlibrc

你应该有这样一条线:
#figure.facecolor : 0.75 # figure facecolor; 0.75 is scalar gray

在我的系统上,如果我取消对此进行评论并将0.75更改为0.0,我的代码会出现黑框,否则会显示为灰色。

如果该行未被注释,那么我不知道你的黑人来自哪里。在导入之后立即添加行matplotlib.rc('figure', facecolor='0.75')应该可以解决问题,但如果不是来自matplotlibrc文件

,则不会回答黑色来自哪里

编辑:this链接可以帮助您解决GTK问题。