Pythonのmatplotlibのテクニック3つ|グラフの大きさ変更、注釈を入れる、透かしを入れる方法を解説

スポンサーリンク

今日は、matplotlib のプロットに関するいくつかのヒントを学びましょう。

それは、プロットを視覚的に改善するだけでなく、物事をより簡単にするために役立ちます。

あなたは既に matplotlib として知られる人気のあるプロットモジュールを知っていることでしょう。

今日は、このモジュールに存在する、あなたのプロットをより良くしてくれるユニークな未知の関数について学びます。

まだ matplotlib ライブラリに馴染みがない場合は、以下のチュートリアルを読んでみてください。

  1. matplotlib の紹介
  2. matplotlib でのサブプロット
  3. matplotlib による 3D プロット
  4. Python でアニメーションプロットを作成する
スポンサーリンク

トリック1:グラフの大きさを変える

グラフのサイズを変更することで、グラフをより見やすくすることができます。

同じことは figure 関数を使って行うことができ、図の幅と高さを figsize として指定することができます。

高さと幅はインチで渡されます。

以下のコードで同じことを見てみましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
import matplotlib.pyplot as plt
 
x = [i for i in range(-10,10)]
y = [2*i*i*i + 4*i for i in x]
 
plt.title("Normal Sized Plot")
plt.plot(x,y)
plt.show()
 
plt.figure(figsize=(3,3))
plt.plot(x,y)
plt.title("Smaller version of the plot")
plt.show()

両方のプロットは以下のように表示されます。

1
2
3
4
5
6
7
8
9
10
x = [i for i in range(-2,2)]
y = [2*i*i + 4*i for i in x]
plt.title("Annotations using the text function")
plt.plot(x,y)
 
for i,j in zip(x,y):
    # x_cordinate, y_cordinate, text, other properties
    plt.text(i,j,"("+str(i)+","+str(j)+")",color="red")
 
plt.show()
1
2
3
4
5
6
7
8
9
10
11
x = [i for i in range(-2,2)]
y = [2*i*i + 4*i for i in x]
plt.title("Annotations using the annotate function")
plt.plot(x,y)
 
for i,j in zip(x,y):
    t=(i,j)
    # text_to_be_added, x and y cordinate in the form of tuple, other properties
    plt.annotate("("+str(i)+","+str(j)+")",xy=t,color="red")
 
plt.show()

トリック2:注釈を加える

注釈は、グラフをより理解しやすく、分析しやすくするために、データポイントのプロットに追加されるコメントです。

アノテーションは2つの異なる方法で追加することができます。

テキスト注釈` 関数です。

両方の方法の実装を以下に示します。

2.1: matplotlib の text 関数を用いたプロットへの注釈の追加

text 関数を使って注釈を追加するコードは,以下のように表示されます.

1
2
3
4
5
6
7
fig, ax = plt.subplots()
x = [i for i in range(-2,2)]
y = [2*i*i + 4*i for i in x]
ax.plot(x,y)
ax.text(0.0, -1.5, 'askpython.com',ha='center',va='center',fontsize=20,alpha=0.5)
 
plt.show()
1
2
3
4
5
6
7
8
9
10
11
12
import matplotlib.image as image
img = plt.imread('image.png')
 
fig, ax = plt.subplots()
 
x = [i for i in range(-2,2)]
y = [2*i*i + 4*i for i in x]
ax.plot(x,y)
 
fig.figimage(img, 100, 100,alpha=0.5)
 
plt.show()

2.2: 2.2: annotate 関数の使用

次に、annotate 関数を使用して注釈を追加する方法を説明します。

Normal Plot Matplot
Normal Plot Matplot
Reduced Size Plot Matplot
Reduced Size Plot Matplot

トリック 3: プロットに透かしを追加する

透かしは matplotlib ではあまり使われませんが、ユーザがプロットを所有したい場合は追加することができます。

2種類の透かしを入れることができます。

  1. テキストベースの透かし
  2. 画像ベースの透かし

プロットに透かしを追加するために、2つの図オブジェクトを返すサブプロットオブジェクトを作成します。

text関数とfigimage` 関数を使って直接プロットし、テキストとイメージの透かしを追加することができます。

3.1 テキストベースの電子透かし

テキスト関数は、プロット上に必要なテキストと一緒にxとyの座標を必要とし、テキストに必要なプロパティが必要です。

コードと出力は以下のとおりです。

Text Function Annotation Plot
Text Function Annotation Plot
Annotate Function Annotations Plot
Annotate Function Annotations Plot

3.2 画像に基づく電子透かし

画像の透かしを追加するには、matplotlib ライブラリから適切なモジュールをインポートし、 imread 関数を用いて画像を読み込む必要があります。

次に、サブプロットの 2 番目のオブジェクトに figimage 関数を使用して画像を追加します。

コードと出力は以下のように表示されます。

Text Watermark Matplot
Text Watermark Matplot
Image Watermark Matplot
Image Watermark Matplot

まとめ

今日は、matplotlib のプロットをより効果的に、よりわかりやすくするためのいくつかの簡単なトリックを学びました。

お読みいただきありがとうございました。

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