matplotlib는 ylim 값을 얻습니다.


115

나는 파이썬에서 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)

답변:


159

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

get_ylim ()

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


2
축 제한이 아닌 그래프 영역 제한을 얻는 방법이 있습니까? 검은 색 경계 사각형은이 값을 약간 벗어납니다.
Peter Ehrlich

@PeterEhrlich 그것은 단지 여백입니다.
ilija139

12
내가 찾을 plt.gca().get_ylim()편리 할 - 추가 축 정의가 필요합니다.
Matthias Arras 2019

또한, 내가 사용하는 것을 선호 fig, ax = plt.subplots()중 하나를 통해 다음 경로 내 모든 기능을하고 fig또는ax
BallpointBen

34
 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)

10

위의 좋은 답변을 활용하고 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()

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.