2015-06-12 15 views
5

Matplotlib'i günlük olarak şu anda günlük olarak kullanıyorum ve hala kafa karıştırıcı yeni şekiller oluşturmayı düşünüyorum.Matplotlib'de pyplot kullanmadan bir arsa nasıl oluşturulur

import matplotlib.pyplot as plt 
import itertools as it 
fig,axes = plt.subplots(2,2) 
axit = (ax for ax in it.chain(*axes)) 
for each of four data series I want to plot: 
    ax = next(axit) 
    ax.plot(...) 

Şimdi sahip sorudur: Ben bir rakam nasıl oluşturabileceğini, tamamen bağımsız yani pyplot ait çalışabilir nasıl

Genellikle örneğin, somthing gibi kullanarak 2x2 subplots ile bir figür oluşturmak , arazilerle doldurun, stil değişiklikleri yapın ve sadece o rakamın görünmesini istediğim anda görünmesini söyle. İşte sorun yaşıyorum budur:

plt.draw() 

Ama bu işe yaramazsa: Yukarıdaki çalıştırdıktan sonra

import matplotlib as mpl 
gs = gridspec.GridSpec(2,2) 
fig = mpl.figure.Figure() 
ax1 = fig.add_subplot(gs[0]) 
ax1.plot([1,2,3]) 
ax2 = fig.add_subplot(gs[1]) 
ax2.plot([3,2,1]) 

, akla gelen tek şey kullanmak olacaktır. Çizgiler ile şekil yapmak için eksik olan nedir? Ayrıca, rakamı pyplot olmadan oluşturmak için yapmak zorunda olduğum tek şey var mı?

+0

Neden pyplot kullanmak istemiyorsunuz? – hitzg

+0

Bir GUI'de matplotlib dosyasını gömmek için Tkinter kullanıyorum. Bunu bir kitapta ve çevrimiçi ortamda yapmak için bazı kodlar gördükten sonra çalıştırdım ve koştum. GUI'de bir arsa yerleştirme yöntemi, pyplot kullanmaz. Şimdi sadece basit bir arsa yerine, gridspec ile birden çok çizim kullanarak bazı yeni özellikler eklemeye çalışıyorum. – evianpring

+0

Bu, Tk: http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html – hitzg

cevap

1

Daha sonra el rakama uygun backend takmak ve olabilir göstermek:

from matplotlib.backends import backend_qt4agg # e.g. 
backend_qt4agg.new_figure_manager_given_figure(1, fig) 
fig.show() 

... ama neden pyplot kullanılmasın?

+0

'da bir şeklin nasıl yerleştirileceğine ilişkin bir örnektir. Matplotlib'i bir GUI'ye gömmek için Tkinter kullanıyorum. Bunu bir kitapta ve çevrimiçi ortamda yapmak için bazı kodlar gördükten sonra çalıştırdım ve koştum. GUI'de bir arsa yerleştirme yöntemi, pyplot kullanmaz. Şimdi sadece basit bir arsa yerine, gridspec ile birden çok çizim kullanarak bazı yeni özellikler eklemeye çalışıyorum. – evianpring

+0

Ama sadece anladığım kadarıyla şu belgeleri okudum: "matplotlib farklı çıktıları hedefleyebilir ve bu özelliklerin her birine bir arka uç adı verilir" "İki tür arka plan vardır: kullanıcı arabirimi arka planları pygtk, wxpython, tkinter, qt4 veya macosx, “interaktif arka planlar” olarak da anılır) ve görüntü dosyalarını (PNG, SVG, PDF, PS; aynı zamanda “etkileşimli olmayan arka planlar” olarak da adlandırılır) yapmak için basılı kopyalarda kullanılır. " – evianpring

+0

"Grafiksel kullanıcı arabirimleri için işleri biraz daha özelleştirilebilir hale getirmek için, matplotlib, oluşturucu (çizim yapan şey) konseptini tuvalden ayırır (çizimin yapıldığı yer)." "Kullanıcı arabirimleri için standart oluşturucu Agg" Yani, anladığım gibi, "Qt4 kanvasına Agg rendering" olan arka uç Qt4agg kullanıyorsunuz. Tkinter, "Tk kanvasına Agg rendering" olan Tkagg kullanır. Sanatçılar Eğiticisi'nden: – evianpring

İlgili konular