2011-12-01 18 views
6

Noktaları çizmek için altı farklı sembol kullanan bir dağılım grafiği var. Örneğin, aşağıdaki kod aşağı doğru noktalı üçgen sembolü bir noktayı araziler:Grafiğin dışındaki matplotlib scatter işaretleyicilerini, çubuk grafik etiketlerinde kullanmanız gerekir

my_axis.scatter([x], [y], marker='v') 

her sembol, nesnenin farklı sınıfını temsil eder. Dağılım grafiğinde kullanılan sembollere, farklı bir grafikte, dağılım kümesindeki her kümedeki her bir sınıfın oranlarını açıklayan bir çubuk grafikle başvurmalıyım.

Çubuk grafikler için etiketler, dağılım grafiği işaretçileri için kullanılan sembolleri nasıl kullanabilirler? Aşağıdaki resimde de görebileceğiniz gibi, her çubuğun altındaki etiketler, grafikteki işaretçilere karşılık gelmelidir, ancak işaretleyicileri dağılım taslağının bağlamı dışında nasıl çağıracağımı bilmiyorum çünkü yapmazlar. Bunun yerine, yalnızca işaretçinin kod harfini gösterirler (ör., Gerçek bir üçgen yerine v).

Yüzdelerin karışık satırlarının örtüştüğü gerçeğini göz ardı edin, düzelteceğimiz ayrı bir sorun.

Sembolleri, bir yer bulabileceğimiz UTF-8 sembolleri olsaydı, çubuk grafik göstergesine el ile ekleyerek iyi olurdu, ancak her bir işaretin hangi karakter için olabileceğini tam olarak bulamadık.

Ayrıca .scatter() yerine, literal UTF-8 karakterlerini kullanarak .text() yöntemini kullanmayı düşünüyorum, ancak fontproperties ile bir Unicode yazı tipi seçtiğimde bile birçok sembol (kareler olarak görünecek) renderlemez. Bu yüzden bu yaklaşıma takılıyorum.

Yardımın için teşekkürler! Bu Unicode/LaTeX metni kullanarak benziyor

scatter plot and bar graphs

cevap

3

Latex kullanımı oldukça kolay bir çözümdür.

from matplotlib import rc 
rc('text', usetex=True) 
plt.xticks(ind+width/2., ("$\lozenge$", "$\square$", "$\plus$", "o", "$\bigtriangledown$")) 

Ve semboller için isimler bulmaktan yardıma ihtiyacınız varsa, this istediğiniz sembolü çizmek ve onu LaTex adları çıktısı sağlayan bir büyük küçük sitesidir: Örneğin.

+0

Bu gerçekten harika bir Unicode aracıdır, onu seviyorum. Herkese bir bakın! Ben işaretçiler için Unicode metin ile gideceğim, LaTeX kullanarak bitmedi, sadece basit semboller. – mrjf

+0

Sevindim. Kendimi bir destekleyici gibi hissediyorum (söz veriyorum) ama Detexify bile aslında oldukça eğlenceli olan telefon uygulamalarına sahip. – cosmosis

İlgili konular