x軸のラベルが多すぎて、重なってしまう際の対処方法しついて調べたので紹介します。
元のグラフ
まず以下のコードで、x軸が重なってしまっているグラフを表示します。
import matplotlib.pyplot as plt xs = ["AAAAAAAAAA","BBBBBBBBBBBB","CCCCCCCCCCCC","DDDDDDDDDDD","EEEEEEEEEEE","FFFFFFFFFFFF"] ys = [1,2,4,8,16,32] fig,ax = plt.subplots() ax.plot(xs,ys)
上述したように単純にグラフをプロットすると、x軸の目盛りが重なっています。
変更後のグラフ
x軸の表示間隔を変更するコードが以下になります。
変更部分と書いてあるところが先程のコードに変更を加えた部分です。
import matplotlib.pyplot as plt xs = ["AAAAAAAAAA","BBBBBBBBBBBB","CCCCCCCCCCCC","DDDDDDDDDDD","EEEEEEEEEEE","FFFFFFFFFFFF"] ys = [1,2,4,8,16,32] fig,ax = plt.subplots() # 変更部分 for idx,label in enumerate(ax.get_xticklabels()): if idx % 2 == 0: label.set_visible(False) # ======================================================== ax.plot(xs,ys)
ax.get_xticklabels()ですべてのx軸のラベルを取得できます。
そして、非表示にしたラベルに対してset_visibleで表示、非表示を設定します。
恐らく、もっと良い方法があると思いますが、
暫定案として共有させていただきました。