특정 xtick
레이블 (마커 크기 제외)에 대한 플롯 전용 영역을 얻으려고합니다. 예를 들어 label='b'
은 (0.5 - 1.5)
b/c의 영역을 가지고있는 것 같습니다. 틱 위치는 1
이고 기본 틱 너비는 1
입니다.라벨이있는 matplotlib에서 xtick의 위치/인덱스를 얻는 방법은 무엇입니까? (파이썬 3.6 | Matplotlib 2.0)
질문은 I 가질 경우 query_label
(예컨대 query_label= "c"
) I (예 [-1, 0, 1, 2, ...]
1)의 폭에 의해 분리 된 각 tick
위치를 가정하지 않고 x-axis
및 tick width
따라 query_label
의 tick position
얻을 수 있는가? 간단한 예를 들어
query_position = (1.5, 2.5) # for query_label = "c"
코드 :
기본적으로, 나는 끝낼 싶습니다
# Data
x = np.arange(5)
y = np.sqrt(x)
s = [1000]*5
c = ["aquamarine"]*5
# Plot
with plt.style.context("dark_background"):
fig, ax = plt.subplots()
ax.scatter(x, y, c=c, s=s, edgecolors="ivory", linewidth=2.5)
ax.set_xticklabels(list("-abcde"), fontsize=20)
ax.grid(False, which="major")
# Trying to get the xtick info
ax.get_xticks()
# array([-1., 0., 1., 2., 3., 4., 5.])
# How to get position and tick width?
query_label= "c"
def get_position(query_label, ax):
# stuff to get tick index
# stuff to get tick width
tick_padding = tick_width/2
return (tick_index - tick_padding, tick_index + tick_padding)
# Results
query_position = get_position(query_label, ax)
query_position
# (1.5, 2.5)
어쩌면 pd.Index(list("-abcde")).get_loc("c")
에와 똑같이 matplotlib
있는 방법이 있습니까? 이 방법이 존재하지만 생성 할 수 있지만 xticklabel 개체의 목록을 반환합니다 ax.get_xticklabels()
를 사용하여 사전을 생성 할 수있는 경우