我的测试代码是
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')
截图图片是
还有更多警告打印出来
QGtkStyle无法解析GTK。确保你已经安装了 适当的图书馆。
我的python是2.7,我的系统是LMDE2(Linux Mint Debian Edition 2)。
答案 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问题。