2013-02-13 17 views
67

下の図のx軸を確認してください。ラベルを左に少し動かすと、それぞれのティックに合わせることができますか?回転したxticklabelsをそれぞれのxtickに合わせる

私が使用してラベルを回転しています:

ax.set_xticks(xlabels_positions) 
ax.set_xticklabels(xlabels, rotation=45) 

をしかし、あなたが見ることができるように、回転がテキストラベルの中央部を中心にしています。彼らは右にシフトされているように見える。

私の代わりにこれを使用して試してみた:

ax.set_xticklabels(xlabels, rotation=45, rotation_mode="anchor") 

...しかし、それは私が望んで何をしません。また、rotation_modeパラメータでは"anchor"が唯一の値であるようです。

Example

答えて

116

あなたは、以下の例を参照してください、ticklabelsの水平方向の配置を設定することができます。回転ラベルの周りに長方形のボックスがあると思われる場合は、四角形のどちらの側をチックポイントに合わせたいのですか?あなたの説明が与えられ

は、あなたがしたい:ヘクタール= '正しい'

n=5 

x = np.arange(n) 
y = np.sin(np.linspace(-3,3,n)) 
xlabels = ['Ticklabel %i' % i for i in range(n)] 

fig, axs = plt.subplots(1,3, figsize=(12,3)) 

ha = ['right', 'center', 'left'] 

for n, ax in enumerate(axs): 
    ax.plot(x,y, 'o-') 
    ax.set_title(ha[n]) 
    ax.set_xticks(x) 
    ax.set_xticklabels(xlabels, rotation=40, ha=ha[n]) 

enter image description here

0

ラベルを回転することは確かに可能です。ただし、そのようにするとテキストの可読性が低下します。より多くの背景と代替案については

import numpy as np 
n=5 

x = np.arange(n) 
y = np.sin(np.linspace(-3,3,n)) 
xlabels = ['Long ticklabel %i' % i for i in range(n)] 


fig, ax = plt.subplots() 
ax.plot(x,y, 'o-') 
ax.set_xticks(x) 
labels = ax.set_xticklabels(xlabels) 
for i, label in enumerate(labels): 
    label.set_y(label.get_position()[1] - (i % 2) * 0.075) 

enter image description here

を、this post on my blog

を参照してください。一つの選択肢は、このようなコードを使用してラベルの位置を交互にあります
関連する問題