Matplotlib でティックの頻度を変更する

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

このチュートリアルでは、Matplotlib で目盛り頻度を変更する方法を見ていきます。このチュートリアルは、軸のレベルと同様に図のレベルでも行います。

Matplotlib で tick の頻度を変更するには?

まず、簡単なプロットから始めましょう。ランダムな値で 2 本の線を描きます。

import matplotlib.pyplot as plt
import numpy as np


fig = plt.subplots(figsize=(12, 6))


x = np.random.randint(low=0, high=50, size=100)
y = np.random.randint(low=0, high=50, size=100)


plt.plot(x, color='blue')
plt.plot(y, color='black')


plt.show()


xyは 0 から 50 までの値で、これらの配列の長さは 100 です。つまり、それぞれ 100 個のデータポイントがあることになります。そして、このデータをAxesオブジェクトにプロットして、PyPlot のインスタンスplt` で表示します。

さて、X軸の刻みの頻度は20です。これは私たちが提供したデータセットに適した頻度に自動的に設定されます。

しかし、これを変更したい場合もあります。たとえば、頻度を減らしたり増やしたりしたい。例えば、20段階ではなく、5段階ごとに刻みを入れたいとしたらどうでしょう?

Y軸も同様です。この軸の区別がさらに重要で、すべてのステップにそれぞれの目盛りを付けたいとしたらどうでしょうか。

Matplotlib で図レベルのティック頻度を設定する

図レベルの目盛り頻度を変更してみましょう。これは、複数の Axes がある場合、これらのすべてのティックの頻度が一様になり、同じ頻度になることを意味します。

import matplotlib.pyplot as plt
import numpy as np


fig = plt.subplots(figsize=(12, 6))


x = np.random.randint(low=0, high=50, size=100)
y = np.random.randint(low=0, high=50, size=100)


plt.plot(x, color='blue')
plt.plot(y, color='black')


plt.xticks(np.arange(0, len(x)+1, 5))
plt.yticks(np.arange(0, max(y), 2))


plt.show()


この場合、 xticks()yticks() 関数を使用して、実際の目盛りを表す配列を渡すことができます。X 軸の場合、この配列は 0 から始まり、 x 配列の長さまでとなります。Y軸の場合、配列は 0 から始まり、配列 y の最大値で終わります。同様に変数をハードコードすることもできます。

最後の引数は step である。ここで、各ステップの大きさを定義する。ここでは、X軸は5ステップごとに、Y軸は2ステップごとに刻みを入れることにする。

Matplotlib での軸レベルの目盛り頻度の設定

複数のプロットを行う場合、軸レベルの目盛り頻度を変更したいと思うかもしれません。例えば、あるグラフでは稀に目盛りを表示し、別のグラフでは頻繁に目盛りを表示したいとします。

set_xticks()set_yticks()関数は、Figureにサブプロットを追加する際に、返されたAxesインスタンスに対して使用することができます。それでは、2つの軸を持つFigure` を作成し、それぞれの軸の目盛り数を個別に変更してみましょう。

import matplotlib.pyplot as plt
import numpy as np


fig = plt.figure(figsize=(12, 6))


ax = fig.add_subplot(121)
ax2 = fig.add_subplot(122)


x = np.random.randint(low=0, high=50, size=100)
y = np.random.randint(low=0, high=50, size=100)
z = np.random.randint(low=0, high=50, size=100)


ax.plot(x, color='blue')
ax.plot(y, color='black')
ax2.plot(y, color='black')
ax2.plot(z, color='green')


ax.set_xticks(np.arange(0, len(x)+1, 5))
ax.set_yticks(np.arange(0, max(y), 2))
ax2.set_xticks(np.arange(0, len(x)+1, 25))
ax2.set_yticks(np.arange(0, max(y), 25))


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をコピーしました