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

  • Android Police

    Android Poli

    21 NİSAN 2010
  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005