2016-09-27 5 views
2

2つの軸を持つmatplotlib図を作成する次のコードを2つあります。リストとしてラベルを「取得」せずにmatplotlibの図の1つの軸でxticksを回転する方法

import pandas as pd 
import numpy as np 
import seaborn as sns 
import matplotlib.pyplot as plt 
import datetime as dt  

x1 = np.arange(0,30) 
x2 = pd.date_range('1/1/2016', periods=30, freq='D') 
y1 = np.random.randn(30) 
y2 = np.random.randn(30) 

%matplotlib inline 
fig, ax = plt.subplots(1,2, figsize=(18,5)) 
ax[0].scatter(x1,y1) 
ax[1].scatter(x2,y2) 

これをipythonノートブックに表示すると、右側にグラフのx軸ラベルが表示されます。私は視認性を向上させるためにラベルを回転させたいと思います。ドキュメントおよびオンライン検索の全ては、以下の2つのオプションのいずれかを示唆しているようだ(両方とも上記の最後の行の後):

#1

plt.setp(ax[1].xaxis.get_majorticklabels(),rotation=90,horizontalalignment='right') 

または#2

plt.xticks(rotation=90) 

これらのいずれかは動作しますが、何らかの理由で2番目の例とは異なる最初の例では異なるラベルのリストも印刷されます

どのように回転/表示もいくつかの配列を出力せずに達成できますか?

+0

をこれはipythonのノートブックの設定に関係しています、私は推測すると思います。 '%% capture'を魔法の引用符として使用しようとしましたか? – ImportanceOfBeingErnest

答えて

4

私はこのアプローチを使用することができました。それは最もエレガントな方法ですが、それは少し遅れて配列

for tick in ax[1].get_xticklabels(): 
    tick.set_rotation(90) 
0

を出力せずに動作するかどうか確認してください、これだけ今後の参考のためではない:

JupyterのノートPCは常に内の最後のコマンドからの戻り値を印刷します細胞。 私は、呼び出したい実際の関数の回避策を検索するのではなく、何も返さない別の関数または文を追加することで、これを抑止します。

だから、あなたができる:

plt.xticks(rotation=90) 
pass 

か:

plt.xticks(rotation=90) 
plt.show()