matplotlib.ticker
메서드를 사용하여 올바른 x-ticks 값을 얻는 데 문제가 있습니다. 내 문제를 설명하기위한 간단한 작업 예제가 있습니다.잘못된 값이 나타납니다 ... python matplotlib.ticker (ax.xaxis.set_major_locator)
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
## Sample code
np.arange(0, 15, 5)
plt.figure(figsize = [6,4])
x=np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
y=np.array([15,16,17,18,19,20,40,50,60,70,80,90,100,110,120])
ax = sns.pointplot(x,y, color='k', markers=["."], scale = 2)
ax.xaxis.set_major_locator(matplotlib.ticker.FixedLocator([1,5,8]))
결과 X-진드기는 우측 위치 (1,5,8)하지만 1,5,8 대신 1 (의 (X 값에 대응하는)되어 해당 위치에 대한 원하는 값에 위치하고 2,3)
나는 모든 로케이터가 https://matplotlib.org/examples/ticks_and_spines/tick-locators.html 설명했지만, 한 그것은 전체 방송 1,2,3 X-틱 값 ... :(
내 실제 문제 (데 문제가 동일한 문제 : x-tick은 t 대신 64, 273.5, 1152.5와 같아야합니다. 그는 처음 세 숫자)
...
print(intervals}
>> [64, 74, 86.5, 10.1, 116.0, 132.0, 152.0, 175.5, 204.0, 236.0, 273.5, 319.0, 371.0, 434.0, 509.0, 595.5, 701.0, 861.0, 1152.5]
ax.xaxis.set_major_locator(matplotlib.ticker.LinearLocator(3)
plt.show()
고마워요! 나는 포매터가 존재한다는 것을 몰랐다. – SUNDONG
왜 정확히 여기에 포인트 플롯을 사용하고 있습니까? 나는 보통'plt.plot()'을 사용하는 것이 더 합리적이라고 생각한다. 이 경우 포매터가 이미 자동으로 ScalarFormatter로 설정되어 있기 때문에 로케이터 만 설정하는 것만으로도 충분합니다. – ImportanceOfBeingErnest
나는 '해골'도서관에서 해본 음모를 사용하여 약간의 유익 (어떤 문체적인 것)을 얻었습니다. 그 그림을 사용하기로 결정하면'Locator'와'formatter' 문제가 발생합니다 ...! 어쨌든 bin 값 목록이 있고'formatter'를 사용하여 올바른 값을 넣습니다. 감사! – SUNDONG