2017-01-07 22 views
0

ЦЕЛЬJupyter Notebook + Matplotlib; Мораторий на plot.show()

  • Использование Matplotlib для построения штат Техас

КОД

import pandas as pd 
import numpy as np 
matplotlib.use('QT4Agg') 
import matplotlib 
import matplotlib.pyplot as plt 
import matplotlib.cm as cm 
from matplotlib.colors import Normalize 
from matplotlib.collections import PatchCollection 
import matplotlib.pyplot as plt 
from mpl_toolkits.basemap import Basemap 


map = Basemap(projection='merc', lat_0 = 57, lon_0 = -135, 
    resolution = 'h', area_thresh = 0.1, 
    llcrnrlon=-106.65, llcrnrlat=25.83, 
    urcrnrlon=-93.50, urcrnrlat=36.50) 

map.drawcoastlines() 
map.drawstates() 
map.drawcountries() 
map.fillcontinents(color = 'white') 
map.drawmapboundary() 


plt.show(block = False) 

ВЫВОД

enter image description here

DEBUG

  • Видимо changing backend helps, однако matplotlib.use('QT4Agg') дает следующую ошибку "Gtk* backend requires pygtk to be installed"

  • Посмотрел онлайн решений, чтения вы должны были установить PyGTK, однако, при установке, я получаю следующая ошибка: Building PyGTK using distutils is only supported on windows. (после ввода pip install PyGTK)

  • Кроме того, несмотря на вызов matplotlib.use('QT4Agg'), я принимаю ошибку matplotlib.use() has no effect because the backend has already been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot, or matplotlib.backends is imported for the first time..

ВЫПУСКА

  1. Не удается правильно установить пакеты, необходимые для предотвращения Matplotlib от работы в непрерывном цикле. Я что-то упустил? Есть ли обходные пути?
  2. Почему, несмотря на вызов matplotlib('QT4Agg') перед импортом matplotlib, я получаю сообщение об ошибке (пункт № 3), указанный выше?
+0

https://github.com/matplotlib/matplotlib/pull/4779/files может уточнить, что здесь происходит. – tacaswell

ответ

0

Это в Jupyter Notebook или что-то в этом роде? Обычно вы не можете сделать

matplotlib.use('QT4Agg') 
import matplotlib 

в таком порядке, поскольку matplotlib не будет находиться в пространстве имен. Измените порядок, затем перезапустите ядро ​​Jupyter или сбросьте все это в файл .py.

В Jupyter, вы должны быть в состоянии назвать

%matplotlib qt4 

перед импортом Matplotlib установить бэкенд вместо вызова использования().

+1

Благодарим вас за помощь. Я закончил с успехом в следующем учебнике: https://stackoverflow.com/questions/14261903/how-can-i-open-the-interactive-matplotlib-window-in-ipython-notebook – jonplaca

+0

@jonplaca круто, рад, что он выработал для вас :) – Perfi