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

  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • gsipek

    gsipek

    20 Temmuz 2007