点と線-matplotlib
matplotlibで簡単なグラフ作成をしてみる。
目次
- 目次
- 実行環境
- 点をプロット
- 点のサイズ(markersize)を変更
- 3点を★でプロット
- 点(marker)を指定しなければ折れ線
- 点と線で繋ぐ
- その他 marker参考ページ
- x,yの値をrangeで指定
- 値を文字で指定
- 棒グラフに変える
- 文字でプロット
- ランダムにプロットしてみる
- おわりに
実行環境
Androidスマホ
termux
Python3.7
JupyterNotebook
点をプロット
下のコードのplt.plot()3つ目の引数を'.'
にすると点でのプロットになる。
その他に●や▲や■、×、★など色々用意されている。
%matplotlib inline import matplotlib.pyplot as plt x = 1 y = 2 plt.plot(x,y,'.')
[<matplotlib.lines.Line2D at 0x7607472d90>]
点のサイズ(markersize)を変更
plot()の引数にmarkersize=数字
を指定すると点のサイズが変更できる。
%matplotlib inline import matplotlib.pyplot as plt x = 2 y = 5 plt.plot(x,y,'*',markersize=20)
[<matplotlib.lines.Line2D at 0x7603a74e90>]
3点を★でプロット
%matplotlib inline import matplotlib.pyplot as plt x = (1,2,3) y = (4,5,2) plt.plot(x,y,'*',markersize=20)
[<matplotlib.lines.Line2D at 0x760355cf90>]
点(marker)を指定しなければ折れ線
plt.plot()の引数で指定していた'.'
を外すと次のようなグラフになる。
%matplotlib inline import matplotlib.pyplot as plt x = (1,2,3) y = (8,4,7) plt.plot(x,y)
[<matplotlib.lines.Line2D at 0x7607146f10>]
点と線で繋ぐ
'.'
をmarker='.'
に変えると線で繋がれる。
%matplotlib inline import matplotlib.pyplot as plt x = (1,2,3,4,5) y = (4,5,2,17,38) plt.plot(x,y,marker='.',markersize=20)
[<matplotlib.lines.Line2D at 0x7603448ad0>]
その他 marker参考ページ
こちらのサイトは対応表でまとめてあります。
https://pythondatascience.plavox.info/matplotlib/%E3%83%9E%E3%83%BC%E3%82%AB%E3%83%BC%E3%81%AE%E5%90%8D%E5%89%8D
x,yの値をrangeで指定
x,yの値の個数が合わないとエラーになる。
%matplotlib inline import matplotlib.pyplot as plt x = range(0,11) y = range(0,21,2) plt.plot(x,y,'.',20)
<matplotlib.lines.Line2D at 0x760461a2d0>]
値を文字で指定
月別の売上をグラフにしたい時などに使える。
matplotlibは標準で日本語表示
出来なくて文字化けする。別にソフトをインストールする必要がある。
OS別にインストール方法がまとめてあります。
[https://qiita.com/yniji/items/3fac25c2ffa316990d0c:embed]
%matplotlib inline import matplotlib.pyplot as plt x = ("jan","feb","mar","apr","may") y = (8,4,7,11,95) plt.plot(x,y)
[<matplotlib.lines.Line2D at 0x76071a0f90>]
棒グラフに変える
plot()
をbar()
に変えると棒グラフに変えられる。
%matplotlib inline import matplotlib.pyplot as plt x = ("jan","feb","mar","apr","may") y = (8,4,7,11,95) plt.bar(x,y)
<BarContainer object of 5 artists>
文字でプロット
marker='$文字列$'
とすると点が文字に変えられる。
marker=
を外すとエラーになるので注意。
こちらも日本語対策なしだと文字化けする。
%matplotlib inline import matplotlib.pyplot as plt x = (1,2,3) y = (4,5,2) plt.plot(x,y,marker='$Point$',markersize=30)
[<matplotlib.lines.Line2D at 0x76040f6110>]
ランダムにプロットしてみる
グラフ作成というより、xとyのリストの作り方の問題。
%matplotlib inline import matplotlib.pyplot as plt import random x = list(random.randrange(i) for i in range(1,50)) y = list(random.randrange(j) for j in range(1,50)) plt.plot(x,y,'.')
[<matplotlib.lines.Line2D at 0x7603a8dad0>]
おわりに
matplotlibを使うサンプルコードには大抵numpyがimportしてある。
ここまで書いてきたコードはnumpyをあえて使っていない。
「なぜnumpyが使われるのか。」が疑問としてあった。
リストyをリストxの関数としてy=2*x
のような書き方をしようとすると、通常のリストやタプルだけでは難しい、というかエラーになる。
ところがnumpyを使うとスカラーの変数のような書き方でいける。numpyは配列や行列の計算をする場合に強力な武器になるといいます。Pythonが機械・深層学習において他言語に勝っているのはこのnumpyの功績が非常に大きいのだとPyConJP2019のYouTube動画で東大の先生が言っておりました。
そういった訳でnumpy学習の動機付けの為の基礎的グラフ作成エントリーでした。