2014-09-30 14 views
50

Python'dan verileri (plot ve errorbar işlevlerini kullanarak) matplotlib kullanıyorum. Tamamen ayrı ve bağımsız bir dizi çizim çizmeliyim ve daha sonra ylim değerlerini ayarlayarak görsel olarak karşılaştırılabilir olmalarını sağlayın.matplotlib get ylim değerleri

Her bir çizimden ylim değerlerini nasıl alabilirim, böylece alt ve üst ylim değerlerinin min ve maksimum değerlerini alabilirim ve görsel olarak karşılaştırılabilecek şekilde grafikleri ayarlayabilir miyim?

Tabii ki, sadece verileri analiz edebilir ve kendi özel ylim değerleri ile gelebilirim ... ama bunu benim için matplotlib kullanmak istiyorum. Bunu kolayca (ve verimli bir şekilde) nasıl yapacağınıza dair herhangi bir öneriniz var mı?

İşte matplotlib kullanarak arazisi benim Python fonksiyonu var:

import matplotlib.pyplot as plt 

def myplotfunction(title, values, errors, plot_file_name): 

    # plot errorbars 
    indices = range(0, len(values)) 
    fig = plt.figure() 
    plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker='.') 

    # axes 
    axes = plt.gca() 
    axes.set_xlim([-0.5, len(values) - 0.5]) 
    axes.set_xlabel('My x-axis title') 
    axes.set_ylabel('My y-axis title') 

    # title 
    plt.title(title) 

    # save as file 
    plt.savefig(plot_file_name) 

    # close figure 
    plt.close(fig) 

cevap

64

Sadece axes.get_ylim() kullanmak, bu set_ylim çok benzer. docs Gönderen:

get_ylim()

y ekseni aralığını alın [alt, üst]

+0

Eksen sınırından ziyade, grafik alanı sınırını elde etmenin bir yolu var mı? Siyah sınırlayıcı dikdörtgen bu değerlerin biraz üzerindedir. –

18
ymin, ymax = axes.get_ylim() 

Eğer plt yapısını kullanıyorsanız, neden bile rahatsız eksenler? Bu çalışmalıdır:

def myplotfunction(title, values, errors, plot_file_name): 

    # plot errorbars 
    indices = range(0, len(values)) 
    fig = plt.figure() 
    plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker='.') 

    plt.xlim([-0.5, len(values) - 0.5]) 
    plt.xlabel('My x-axis title') 
    plt.ylabel('My y-axis title') 

    # title 
    plt.title(title) 

    # save as file 
    plt.savefig(plot_file_name) 

    # close figure 
    plt.close(fig) 

Yoksa bu değil mi?

+0

Önerilen basitleştirmeniz yardımcı olabilir. Ancak, eksenleri kendi başlarına kullanmak isteyebilirim. Gerçekten bilmiyorum, dürüst olmak gerekirse. – synaptik

+1

Ya, Verilen herhangi bir matplotlib programında, tekrar tekrar ileri geri gidiyorum itiraf etmeliyim! –