私は特定のxtick
ラベル(マーカーのサイズを含まない)のプロット専用の領域を取得しようとしています。たとえば、label='b'
は(0.5 - 1.5)
b/cのテリトリーを持っているようですが、ティックポジションは1
です。デフォルトのティック幅は1
と考えています。ラベル付きmatplotlibのxtickの位置/インデックスを取得する方法は? (Python 3.6 | Matplotlib 2.0)
私の質問は、私が持っている場合query_label
(例えばquery_label= "c"
)私は(例えば[-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
analagousで方法はありますか?