[python] matplotlib는 ylim 값을 얻습니다.

나는 파이썬에서 matplotlib데이터 ( ploterrorbar함수 사용) 를 그리는 데 사용 하고 있습니다. 완전히 분리되고 독립적 인 플롯을 그린 다음 ylim시각적으로 쉽게 비교할 수 있도록 값 을 조정해야 합니다.

ylim각 플롯 에서 값을 검색하여 각각 하한 및 상한 ylim 값의 최소값과 최대 값을 가져 와서 시각적으로 비교할 수 있도록 플롯을 조정할 수 있습니까?

물론 데이터를 분석하고 나만의 맞춤 ylimmatplotlib을 생각 해낼 수는 있지만 저를 위해 사용하고 싶습니다 . 이를 쉽고 효율적으로 수행하는 방법에 대한 제안이 있습니까?

다음은 사용하여 플롯하는 Python 함수입니다 matplotlib.

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)



답변

그냥 사용 axes.get_ylim()하면 set_ylim. 로부터 문서 :

get_ylim ()

y 축 범위 가져 오기 [bottom, top]


답변

 ymin, ymax = axes.get_ylim()

pltAPI를 직접 사용하는 경우 축에 대한 호출을 모두 피할 수 있습니다.

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)


답변

위의 좋은 답변을 활용하고 plt를 다음과 같이 사용한다고 가정합니다.

import matplotlib.pyplot as plt

그러면 plt.axis()다음 예제에서와 같이 사용하여 네 가지 플롯 한계를 모두 얻을 수 있습니다 .

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8]  # fake data
y = [1, 2, 3, 4, 3, 2, 5, 6]

plt.plot(x, y, 'k')

xmin, xmax, ymin, ymax = plt.axis()

s = 'xmin = ' + str(round(xmin, 2)) + ', ' + \
    'xmax = ' + str(xmax) + '\n' + \
    'ymin = ' + str(ymin) + ', ' + \
    'ymax = ' + str(ymax) + ' '

plt.annotate(s, (1, 5))

plt.show()

위의 코드는 다음 출력 플롯을 생성해야합니다.
여기에 이미지 설명 입력


답변