Nasıl komplo dışında efsane koymak
20 araziler (subplots değil) bir dizi tek bir şekilde yapılması gerekiyor. Efsane kutunun dışında olmak istiyorum. Aynı zamanda, figürün boyutu azaltılmış olur gibi eksen değiştirmek istemiyorum. Lütfen aşağıdaki sorguları için bana yardım et:
- Çizim alanının dışında efsane kutu tutmak istiyorum. (Efsane dışında çizim alanının sağ tarafında olmak istiyorum).
- Efsane kutusunun boyutu küçük olacak, böylece metnin yazı tipi boyutu azaltın en azından efsane kutusunun içinde.
CEVAP
Ne istediğinizi yapmak için bir kaç yolu vardır. @İnalis ve @Navi kelime eklemek, bbox_to_anchor
legend kısmen eksenleri ve/dışarıda yer ya da yazı tipi boyutunu azaltmak için anahtar kelime değişkenini kullanabilirsiniz.
Yazı tipi boyutunu şeyler çok zor okuma yapabilirsiniz) azalan düşünmeden önce, etrafında farklı yerlerde efsane yerleştirme ile oynamayı deneyin:
Bakalım genel bir örnek ile başlayalım:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
ax.legend()
plt.show()
Aynı şeyi yaparız, ama bbox_to_anchor
anahtar değişkeni kullanırsanız, biraz eksen sınırları dışında efsane vardiya:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
ax.legend(bbox_to_anchor=(1.1, 1.05))
plt.show()
Benzer şekilde, bir efsane daha yatay ve/veya rakam üst (yuvarlak köşeler ve basit bir gölge açıyorum) koyabilirsiniz:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
line, = ax.plot(x, i * x, label='$y = %ix$'%i)
ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.05),
ncol=3, fancybox=True, shadow=True)
plt.show()
Alternatif olarak, mevcut arsa genişliğini küçültmek ve tamamen şekil ekseni dışında: efsane koyabilirsiniz
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$'%i)
# Shrink current axis by 20%
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])
# Put a legend to the right of the current axis
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.show()
Ve benzer şekilde, arsa dikey olarak küçültme ve alt kısmında yatay bir efsane koyabilirsiniz:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
line, = ax.plot(x, i * x, label='$y = %ix$'%i)
# Shrink current axis's height by 10% on the bottom
box = ax.get_position()
ax.set_position([box.x0, box.y0 box.height * 0.1,
box.width, box.height * 0.9])
# Put a legend below current axis
ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05),
fancybox=True, shadow=True, ncol=5)
plt.show()
matplotlib legend guide bakabilirsiniz. Ayrıca plt.figlegend()
bakmak isteyebilirsiniz. Bu biraz yardımcı olur umarım, her neyse!
Nasıl bir eleman dışında bir tıklama a...
nasıl bir android textview etrafında b...
Nasıl bir dize tüm sayısal olmayan kar...
Nasıl bir WordPress kullanmak KOYMAK/S...
Nasıl bir WordPress kullanmak dışında ...