今日は、matplotlib のプロットに関するいくつかのヒントを学びましょう。
それは、プロットを視覚的に改善するだけでなく、物事をより簡単にするために役立ちます。
あなたは既に matplotlib として知られる人気のあるプロットモジュールを知っていることでしょう。
今日は、このモジュールに存在する、あなたのプロットをより良くしてくれるユニークな未知の関数について学びます。
まだ matplotlib ライブラリに馴染みがない場合は、以下のチュートリアルを読んでみてください。
- matplotlib の紹介
- matplotlib でのサブプロット
- matplotlib による 3D プロット
- 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 関数を使用して注釈を追加する方法を説明します。
トリック 3: プロットに透かしを追加する
透かしは matplotlib ではあまり使われませんが、ユーザがプロットを所有したい場合は追加することができます。
2種類の透かしを入れることができます。
- テキストベースの透かし
- 画像ベースの透かし
プロットに透かしを追加するために、2つの図オブジェクトを返すサブプロットオブジェクトを作成します。
text関数と
figimage` 関数を使って直接プロットし、テキストとイメージの透かしを追加することができます。
3.1 テキストベースの電子透かし
テキスト関数は、プロット上に必要なテキストと一緒にxとyの座標を必要とし、テキストに必要なプロパティが必要です。
コードと出力は以下のとおりです。
3.2 画像に基づく電子透かし
画像の透かしを追加するには、matplotlib ライブラリから適切なモジュールをインポートし、 imread
関数を用いて画像を読み込む必要があります。
次に、サブプロットの 2 番目のオブジェクトに figimage
関数を使用して画像を追加します。
コードと出力は以下のように表示されます。
まとめ
今日は、matplotlib のプロットをより効果的に、よりわかりやすくするためのいくつかの簡単なトリックを学びました。
お読みいただきありがとうございました。