Matplotlib で目盛りラベルを回転させる

Matplotlib は Python で最も広く使われているデータ可視化ライブラリの 1 つです。Matplotlib の人気の多くは、そのカスタマイズオプションによるもので、オブジェクトの階層構造からほぼすべての要素を微調整することができます。

このチュートリアルでは、Matplotlib のプロットで目盛りテキストやラベルを回転させる方法を見ていきます。

プロットの作成

まず、簡単なプロットを作ってみましょう。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)
plt.show()


Matplotlib で X 軸の目盛りラベルを回転させる

さて、ここで X 軸ティックラベルを回転させる方法を見てみましょう。plt.xticks()を用いて Figure レベルで変更する方法と、tick.set_rotation()を個別に用いて Axes レベルで変更する方法、あるいはax.set_xticklabels()ax.xtick_params()` を用いて変更する方法があります。

まず、最初の方法から説明します。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)
plt.xticks(rotation = 45) # Rotates X-Axis Ticks by 45-degrees
plt.show()


ここでは、xticksrotation を 45 に設定し、反時計回りに 45 度傾いていることを意味します。

注意: この関数は、ここでの他の関数と同様に、 plt.plot() の後に呼び出す必要があります。

他の方法としては、現在の Axes オブジェクトを取得し、それに対して ax.set_xticklabels() を呼び出すこともできます。ここで、ラベルとその回転を設定することができます。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)


ax = plt.gca()
plt.draw()


ax.set_xticklabels(ax.get_xticks(), rotation = 45)


plt.show()


Note: この方法を使うには、Xティックラベルにアクセスしたり設定したりする前に plt.draw() を呼び出す必要があります。これは、プロットが描画された後にラベルが設定されるためで、そうでない場合は空のテキスト値を返します。

代わりに、 ax.get_xticklabels() リスト中の ticks を繰り返し処理することもできます。そして、それぞれに対して tick.set_rotation() を呼び出すことができます。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)


ax = plt.gca()
plt.draw()


for tick in ax.get_xticklabels():
    tick.set_rotation(45)
plt.show()


この結果も

そして最後に、ax.tick_params()関数を使用して、そこでラベルの回転を設定することができます。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)


ax = plt.gca()
ax.tick_params(axis='x', labelrotation = 45)
plt.show()


この結果も

Matplotlib で Y 軸の目盛りラベルを回転させる

全く同じ手順で、Y軸の目盛りラベルを変更することができます。

まず、図レベルでは plt.yticks() で、軸レベルでは tick.set_rotation() で、または ax.set_yticklabels()ax.tick_params() を操作することで変更することができます。

まず、最初の選択肢から見てみましょう。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)
plt.yticks(rotation = 45)
plt.show()


前回と同様に、これは yticksrotation を 45 度設定します。

では、直接 Axes オブジェクトを操作してみましょう。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)


ax = plt.gca()
plt.draw()


ax.set_yticklabels(ax.get_yticks(), rotation = 45)


plt.show()


ここでも同じ注意が必要です。正しく動作させるためには、この呼び出しの前に plt.draw() を呼び出す必要があります。

では、tick のリストを繰り返し表示して、それぞれに対して set_rotation() を実行しましょう。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)


ax = plt.gca()
plt.draw()


for tick in ax.get_yticklabels():
    tick.set_rotation(45)
plt.show()


この結果も

最後に、ax.tick_params() 関数を使用して、ラベルの回転を設定することができます。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0, 10, 0.1)
y = np.sin(x)


plt.plot(x, y)


ax = plt.gca()
ax.tick_params(axis='y', labelrotation = 45)
plt.show()


この結果も

Matplotlib でフィットするように日付を回転させる

ほとんどの場合、プロットで目盛りを回転させる理由は、プロットに日付が含まれているからです。日付は長くなり、たとえ小さなデータセットであっても、重なり始めてすぐに読めなくなります。

もちろん、前にやったように回転させることができます。通常、45度傾けるとほとんどの問題が解決され、90度傾けるとさらに問題が解決されます。

しかし、Matplotlib で日付を回転して固定するための別のオプションがあり、それはこれまでの方法よりもさらに簡単です – fig.autofmt__date().

この関数は,2つの異なる軸に対して, fig.autofmt_xdate() または fig.autofmt_ydate() として利用することができます.

それでは、Seattle Weather Datasetでどのように使えるか見てみましょう。

import pandas as pd
import matplotlib.pyplot as plt


weather_data = pd.read_csv("seattleWeather.csv")


fig = plt.figure()
plt.plot(weather_data['DATE'], weather_data['PRCP'])
fig.autofmt_xdate()
plt.show()


この結果、以下のようになります。

結論

このチュートリアルでは、Matplotlib のプロットで軸のテキストやラベルを回転させるいくつかの方法と、日付をフォーマットしてフィットさせる特別な方法について説明しました .

もしあなたがデータ可視化に興味があり、何から始めたらいいかわからないなら、Pythonでのデータ可視化に関する私たちの本の束をチェックしてみてください。

Pythonによるデータ可視化

データビジュアライゼーションで危険な存在になる

30日間無条件返金保証

初級から上級まで

定期的に無料で更新(最新更新は2021年4月)

ボーナスリソースやガイドを更新

Pythonでデータ可視化 MatplotlibとPandasは、Pythonの基礎知識を持つ全くの初心者が、PandasとMatplotlibを使って、単純なプロットからインタラクティブなボタンを持つアニメーションの3Dプロットまで、これらのライブラリで高度な作業をするための強力な基盤を構築できるように設計された書籍です。

本書は、Pythonの基本的な知識を持つ方を対象としています。
PandasとMatplotlibについて知っておく必要
があることすべてを教えてくれる詳細なガイドです。

Pythonによるデータ可視化」は、Pythonの初級~中級開発者向けの書籍で、Pandasを使った簡単なデータ操作から、MatplotlibやSeabornなどのコアなプロットライブラリ、そしてAltairなどの宣言的・実験的ライブラリの活用方法までを案内しています。具体的には、11章にわたって、9つのPythonライブラリを取り上げています。Pandas、Matplotlib、Seaborn、Bokeh、Altair、Plotly、GGPlot、GeoPandas、そしてVisPyです。

データビジュアライゼーションのユニークで実用的なガイドとして、あなたがキャリアで使うかもしれない多くのツールを紹介しています。

タイトルとURLをコピーしました