13

私はautofmt_xdate、長い x 軸ラベルを読みやすい方法でプロットするために使用します。問題は、異なるサブプロットを結合したいときに、他のサブプロットの x 軸のラベルが消えてしまうことです。これは、下の図の左端のサブプロット (高さ 2 行) ではわかりません。autofmt_xdate他の x 軸ラベルが消されないようにする方法はありますか? または、ラベルを回転させる別の方法はありますか? ご覧のとおりxticks、「回転」も試してみましたが、ラベルが中心を中心に回転していたため、ラベルが乱雑になり、満足のいく結果は得られませんでした。

以下のプロットを生成するスクリプト:

from matplotlib import pyplot as plt
from numpy import arange
import numpy
from matplotlib import rc

rc("figure",figsize=(15,10))
#rc('figure.subplot',bottom=0.1,hspace=0.1)
rc("legend",fontsize=16)
fig = plt.figure()


Test_Data = numpy.random.normal(size=20)

fig = plt.figure()
Dimension = (2,3)
plt.subplot2grid(Dimension, (0,0),rowspan=2)
plt.plot(Test_Data)
plt.subplot2grid(Dimension, (0,1),colspan=2)
for i,j in zip(Test_Data,arange(len(Test_Data))):
    plt.bar(i,j)
plt.legend(arange(len(Test_Data)))
plt.subplot2grid(Dimension, (1,1),colspan=2)
xticks = [r"%s (%i)" % (a,b) for a,b in zip(Test_Data,Test_Data)]
plt.xticks(arange(len(Test_Data)),xticks)
fig.autofmt_xdate()
plt.ylabel(r'$Some Latex Formula/Divided by some Latex Formula$',fontsize=14)
plt.plot(Test_Data)
#plt.setp(plt.xticks()[1],rotation=30)
plt.tight_layout()
#plt.show()

スクリプトで作成した図

4

1 に答える 1

15

これは実際にautofmt_xdateメソッドの機能です。メソッドのドキュメントからautofmt_xdate

日付の目盛りラベルは重なることが多いため、回転させて右揃えにすると便利です。また、一般的な使用例は、x 軸が日付データである共有 x 軸を持つ多数のサブプロットです。ticklabels はしばしば長く、下の subplot でそれらを回転させ、他のsubplots でそれらをオフにし、xlabels をオフにするのに役立ちます。

右下のサブプロットのみの xticklabels を回転させたい場合は、

plt.setp(plt.xticks()[1], rotation=30, ha='right') # ha is the same as horizontalalignment

これにより、目盛りラベルが 30 度回転し、右下のサブプロットに対して右揃えになり ( を使用した場合と同じ結果autofmt_xdate)、他の 2 つのサブプロットは変更されません。

于 2013-07-02T16:35:46.290 に答える