| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

Python matplotlib

提供: MyMemoWiki
2021年6月10日 (木) 14:10時点におけるPiroto (トーク | 投稿記録)による版 (→‎WebAggの例)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Python matplotlib

Python | Python NumPy |

Install

ubuntu で apt-get を利用してインストール
sudo apt-get install python-matplotlib
CentOS で PIPを利用してインストール
# pip install matplotlib
# pip install python-dateutil
# pip install pyparsing
Windows で パッケージをダウンロードしてインストール
Windows で PIPを利用してインストール
C:\Python27\Scripts>pip install matplotlib
C:\Python27\Scripts>pip install python-dateutil
C:\Python27\Scripts>pip install pyparsing

グラフウィンドウ

表示確認

  • グラフ描画のバックエンドが何に設定されているのかとウィンドウの表示確認
>>> import matplotlib
>>> matplotlib.get_backend()
'TkAgg'
>>> import pylab
>>> pylab.show()
>>> pylab.figure()
<matplotlib.figure.Figure object at 0x00000000043979E8>
>>> pylab.show()

1053 matplotlib graph window01.jpg

表示方法を変える

以下の中から、matplotlibのバックエンドを設定する
  • ['pdf', 'pgf', 'Qt4Agg', 'GTK', 'GTKAgg', 'ps', 'agg', 'cairo', 'MacOSX', 'GTKCairo', 'WXAgg', 'template', 'TkAgg', 'GTK3Cairo', 'GTK3Agg', 'svg', 'WebAgg', 'CocoaAgg', 'emf', 'gdk', 'WX']
WebAggの例

import matplotlib
matplotlib.use("WebAgg")
import numpy as np
import matplotlib.pyplot as plt
import random
fig,ax = plt.subplots()
ax.bar(np.arange(10),[random.randrange(0,10) for x in range(10)],1)
plt.show()

1054 matplotlib graph window02.png

終了

  • plt.cla(): Axesをクリア
  • plt.clf(): figureをクリア
  • plt.close(): プロットを表示するためにポップアップしたウィンドウをクローズ

例1
>>> from pylab import *
>>> x = range(10)
>>> y = [y1**2 for y1 in x]
>>> plot(x, y, 'ro')
[<matplotlib.lines.Line2D object at 0x0278D170>]
>>> savefig('test.png')
>>> show()

1055 matplotlib01.jpg

例2
>>> from pylab import *
>>> from numpy import *
>>> x = arange(-3,3,.1)
>>> y = [y1**3 for y1 in x]
>>> plot(x,y)
[<matplotlib.lines.Line2D object at 0x02C1C270>]
>>> show()

1056 matplotlib02.jpg

コマンド

http://matplotlib.org/api/pyplot_summary.html

Examples

サンプル

棒グラフ

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> import random
>>> random_data = [random.randrange(0,10) for x in range(10)]
>>> random_data
[0, 1, 8, 4, 5, 9, 8, 0, 4, 7]
>>> fig,ax = plt.subplots()
>>> ax.bar(np.arange(10),random_data,1)
<Container object of 10 artists>
>>> plt.show()

1057 matplotlib03.jpg