2013-08-30 12 views
14

Benim grafik y den = -1 Ben keyfi pozisyonda metnin küçük bir parça yazmak istiyorum 10Matplotlib, veri koordinatlarındaki çizimin dışında nasıl ek açıklama yazılır?

y için = gider x = 2000 de, y 5 = ki:

balta. açıklama ('MGII', xy = (2000.0, 5.0), xycoords = 'data')

Şimdi aynı istiyorum, ama metnin parçası grafiği dışında olmalıdır bu kez, ancak kesin pozisyonda Veri koordinatlarını işaretliyorum:

ax.annotate ('MGII', xy = (2000.0, 10.5), xycoords = 'data')

Ama sonra kaybolur (benim grafiği hatırlamak gelen -1 10'a gider). Grafiğin üstünde bol miktarda boş alan var.

, ben belirtirseniz

xy = (2000.0, 9,999)

sonra etiket neredeyse görünür Onu istediğiniz yere, sadece resmin üst sınırına çok yakın olduğu . Özellikle y = 10.5 de istiyorum.

+0

@nordev ... açıklama kod ben o zaman, ilk yazılı var düşünüyorum (biraz titiz olduğunu sanatçı yeniden faktorlandı ve ek açıklama asla güncellenmedi) – tacaswell

cevap

20
ax.annotate('MgII', xy=(2000.0, 10.5), xycoords='data', annotation_clip=False) 

Veri birimlerinde varsayılan olarak, ek açıklama yalnızca eksenlerde ise çizilir.

Bir blended transform kullanarak daha iyi olabilir: clip_on` çalışmaması gerektiğini `O Değil ikna

trans = ax.get_xaxis_transform() # x in data untis, y in axes fraction 
ann = ax.annotate('MgII', xy=(2000, 1.05), xycoords=trans) 
+1

Hey, çok teşekkürler! (+1) Bu cevap o kadar çabuk geldi ki, onu henüz kabul edemem (bir şey söyleyen kırmızı bir uyarı var: cevabı 3 dakikada cevaplayabilirsiniz). StackExchange'i seviyorum. – Mephisto

+1

@Mephisto Bkz. Düzenle – tacaswell

+0

Bunu görüyorum. Teşekkürler, çok yararlı, hatta ilk seçenek daha. – Mephisto