2011-08-23 12 views
39
>>> import matplotlib 
>>> print matplotlib.rcsetup.all_backends 
[u'GTK', u'GTKAgg', u'GTKCairo', u'MacOSX', u'Qt4Agg', u'Qt5Agg', u'TkAgg', u'WX', u'WXAgg', u'CocoaAgg', u'GTK3Cairo', u'GTK3Agg', u'WebAgg', u'nbAgg', u'agg', u'cairo', u'emf', u'gdk', u'pdf', u'pgf', u'ps', u'svg', u'template'] 

Tüm bu arkalara bakın!matplotlib backends - umrumda mıyım?

Hangi arka uç kullanımda olduğundan emin olmalı mıyım? Örneğin. Yalnızca TkAgg arka ucunu kullanarak ürünlerimi geliştirip test edersem ve kodumu kullanan bir kişi sistemlerinde GTKAgg arka uç kullanıyor olabilir, benim şeyler fark etmeyeceğim bir şekilde onlar için kırılabilir veya tüm arka planlar Aynı şekilde daha fazla veya daha az "iş"?

+1

Farklı arka planlarda farklı şekilde ele alınan çift tıklama ve üç tıklatma etkinlikleriyle zaten sorun yaşadım, bu nedenle bazı farklılıklar olduğunu biliyorum. Dikkatli olmak için ciddi bir sorun varsa ... – wim

cevap

37

Arka uç, temel olarak matplotlib'i bir uygulamaya katıyorsanız önemlidir; bu durumda, uygulamanızı oluşturmak için kullandığınız araç setiyle eşleşen bir arka uç (GTK, Qt, TkInter, WxWindows) kullanmanız gerekir. Matplotlib'i basit ve etkileşimli bir şekilde de kullanıyorsanız, makinenizde bulunanlarla eşleşen bir arka uç kullanmanız da gerekecektir (Gnome kullanıyorsanız GTK, KDE çalıştırıyorsanız Qt vb.) (her ne kadar çoğu kütüphane zaten birçok makineye yüklenmiştir)

Arka planın çizim katmanı kısmı (Kahire, Agg ...) ayrıca işlevsellik açısından da önemlidir: bu katmanın ne ile karşılaştırıldığına bağlı olarak onu seçebilirsiniz. uygulama ihtiyaçları (anti-aliasing, alfa kanalı, ihracat formatları ...). Dolayısıyla, TkAgg'ı kullanarak geliştirir ve test ederseniz ve diğer kişiler, ör. TkCairo, bazı şeyler işe yaramayabilir. QtAgg ile çalışan OTOH, matplotlib API'sine bağlı kaldığınız ve sarılı araç seti katmanına ulaşmadığınız sürece kesinlikle çok benzer bir şekilde çalışacaktır.