SORU
30 Mart 2011, ÇARŞAMBA


Twinx ile ikincil eksen(): nasıl efsaneye eklemek için?

İki y-eksen, twinx() kullanarak bir arsa var. Ben de çizgiler için etiket ver legend() ama ben sadece efsane bir eksen etiketleri için başarılı onları göstermek istiyorum:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
rc('mathtext', default='regular')

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(time, Swdown, '-', label = 'Swdown')
ax.plot(time, Rn, '-', label = 'Rn')
ax2 = ax.twinx()
ax2.plot(time, temp, '-r', label = 'temp')
ax.legend(loc=0)
ax.grid()
ax.set_xlabel("Time (h)")
ax.set_ylabel(r"Radiation ($MJ\,m^{-2}\,d^{-1}$)")
ax2.set_ylabel(r"Temperature ($^\circ$C)")
ax2.set_ylim(0, 35)
ax.set_ylim(-20,100)
plt.show()

Ben sadece efsane ilk eksen etiketleri ve etiket 'temp' ikinci eksen. Nasıl efsaneye bu üçüncü etiket ekleyebilir misiniz?

enter image description here

CEVAP
30 Mart 2011, ÇARŞAMBA


Kolayca satırı ekleyerek ikinci bir efsane ekleyebilirsiniz:

ax2.legend(loc=0)

Şunu elde ederiz:

enter image description here

Ama eğer Tüm etiketler isterseniz bir efsaneden sonra böyle bir şey yapmanız gerekir:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
rc('mathtext', default='regular')

time = np.arange(10)
temp = np.random.random(10)*30
Swdown = np.random.random(10)*100-10
Rn = np.random.random(10)*100-10

fig = plt.figure()
ax = fig.add_subplot(111)

lns1 = ax.plot(time, Swdown, '-', label = 'Swdown')
lns2 = ax.plot(time, Rn, '-', label = 'Rn')
ax2 = ax.twinx()
lns3 = ax2.plot(time, temp, '-r', label = 'temp')

# added these three lines
lns = lns1 lns2 lns3
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc=0)

ax.grid()
ax.set_xlabel("Time (h)")
ax.set_ylabel(r"Radiation ($MJ\,m^{-2}\,d^{-1}$)")
ax2.set_ylabel(r"Temperature ($^\circ$C)")
ax2.set_ylim(0, 35)
ax.set_ylim(-20,100)
plt.show()

Sana bunu verecektir:

enter image description here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BiGSH0TROB

    BiGSH0TROB

    7 NİSAN 2011
  • brokenbellsVEVO

    brokenbellsV

    11 EYLÜL 2009
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007