Program Club

y 축 matplotlib에서만 마이너 틱을 켜는 방법

proclub 2020. 12. 1. 19:57
반응형

y 축 matplotlib에서만 마이너 틱을 켜는 방법


선형 대 선형 플롯에서 y 축에서만 작은 눈금을 어떻게 돌릴 수 있습니까?

이 기능 minor_ticks_on사용하여 작은 눈금을 켜면 x 축과 y 축 모두에 나타납니다.


신경 쓰지 마, 알아 냈어.

ax.tick_params(axis='x', which='minor', bottom=False)

matplotlib 문서 에서 찾은 또 다른 방법이 있습니다 .

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator

a = np.arange(100)
ml = MultipleLocator(5)
plt.plot(a)
plt.axes().yaxis.set_minor_locator(ml)
plt.show()

보조 눈금은 기본적으로 꺼져 있으므로 y 축 에만 작은 눈금이 배치 됩니다.


사용자 지정 위치에 작은 눈금을 설정하려면 :

ax.set_xticks([0, 10, 20, 30], minor=True)

또한 그래프의 왼쪽과 오른쪽이 아닌 실제 y 축에 작은 눈금 만 원하는 경우 다음과 같이 plt.axes().yaxis.set_minor_locator(ml)with를 따를 수 있습니다 plt.axes().yaxis.set_tick_params(which='minor', right = 'off').

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator

a = np.arange(100)
ml = MultipleLocator(5)
plt.plot(a)
plt.axes().yaxis.set_minor_locator(ml)
plt.axes().yaxis.set_tick_params(which='minor', right = 'off')
plt.show()

@emad의 답변 절차를 명확히하기 위해 기본 위치에 작은 눈금을 표시하는 단계는 다음과 같습니다.

  1. axes 객체에 대한 작은 눈금을 켜면 Matplotlib가 적합하다고 판단되는대로 위치가 초기화됩니다.
  2. 원하지 않는 작은 눈금을 끕니다.

최소한의 예 :

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plt.plot([1,2])

# Currently, there are no minor ticks,
#   so trying to make them visible would have no effect
ax.yaxis.get_ticklocs(minor=True)     # []

# Initialize minor ticks
ax.minorticks_on()

# Now minor ticks exist and are turned on for both axes

# Turn off x-axis minor ticks
ax.xaxis.set_tick_params(which='minor', bottom=False)

대체 방법

또는 AutoMinorLocator다음을 사용하여 기본 위치에서 작은 눈금을 얻을 수 있습니다 .

import matplotlib.pyplot as plt
import matplotlib.ticker as tck

fig, ax = plt.subplots()
plt.plot([1,2])

ax.yaxis.set_minor_locator(tck.AutoMinorLocator())

결과

어느 쪽이든 결과 플롯에는 y 축에만 작은 눈금이 있습니다.

y 축에만 작은 눈금으로 플롯

참고 URL : https://stackoverflow.com/questions/12711202/how-to-turn-on-minor-ticks-only-on-y-axis-matplotlib

반응형