「なんでもいいからとりあえずグラフ出してみろ」 という情緒の欠片もないような人は、以下のコードを書きましょう。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
plt.plot( [3,1,4,1,5,9,2,6,5] )
plt.show()
グラフ作成に使うのは matplotlib の pyplot ですが、plt という名前でインポートするのが慣例です。 plt.plot() でリストをグラフとして描写し、 plt.show() で画面に出力します。
plt.plot() を複数回実行してから plt.show() をすると、複数のリストを並べてグラフ化することができます。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
plt.plot( [3,1,4,1,5,9,2,6,5] )
plt.plot( [3,5,8,9,7,9,3,2,3] )
plt.plot( [8,4,6,2,6,4,3,3,8] )
plt.show()
plt.plot() に第2引数として、プロット方式を指定することができます。 種類は「これでもか」というくらい沢山あります。
plt.plot( [1,2,3], '-') # 折れ線
plt.plot( [1,2,3], '--') # 破線
plt.plot( [1,2,3], '-.') # 一点破線
plt.plot( [1,2,3], ':') # 点線
plt.plot( [1,2,3], '.') # 点
plt.plot( [1,2,3], ',') # ドット
plt.plot( [1,2,3], 'o') # 円
plt.plot( [1,2,3], 'v') # 下向き三角
plt.plot( [1,2,3], '^') # 上向き三角
plt.plot( [1,2,3], '<') # 左向き三角
plt.plot( [1,2,3], '>') # 右向き三角
plt.plot( [1,2,3], 's') # 正方形
plt.plot( [1,2,3], 'p') # 五角形
plt.plot( [1,2,3], 'h') # 六角形 (縦)
plt.plot( [1,2,3], 'H') # 六角形 (横)
plt.plot( [1,2,3], '+') # 十字
plt.plot( [1,2,3], 'x') # バツ
plt.plot( [1,2,3], 'd') # 菱形
plt.plot( [1,2,3], 'D') # 正方形 (斜め)
plt.plot( [1,2,3], '|') # 縦線
plt.plot( [1,2,3], '_') # 横線
# 合わせ技
plt.plot( [1,2,3], '-o') # 折れ線 + 円
plt.plot( [1,2,3], '--o') # 破線 + 円
プロット方式と同様の方法で、色も指定できます。
plt.plot( [1,2,3], 'b') # 青
plt.plot( [1,2,3], 'g') # 緑
plt.plot( [1,2,3], 'r') # 赤
plt.plot( [1,2,3], 'c') # シアン
plt.plot( [1,2,3], 'm') # マゼンタ
plt.plot( [1,2,3], 'y') # イエロー
plt.plot( [1,2,3], 'b') # 黒
plt.plot( [1,2,3], 'w') # 白
# プロット方式と同時指定
plt.plot( [1,2,3], '--b') # 破線 + 青
画面に出力されたグラフを Ctrl+S で保存できますが、 Pythonコード内で保存したい場合は plt.show() の代わりに plt.savefig() を使います。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
plt.plot( [3,1,4,1,5,9,2,6,5] )
plt.savefig("graph.png")
指定可能なファイル形式は emf, eps, jpeg, jpg, pdf, png, ps, raw, rgba, svg, svgz, tif, tiff です。拡張子を指定すると勝手に判断されます。
画像のサイズは dpi で指定することができます。
なお、SSHリモートログイン等の、GUIのない環境でこのコードを動かすと、以下のようなエラーが出ると思います。
Error
_tkinter.TclError: no display name and no $DISPLAY environment variable
この場合、 matplotlib.pyplot をインポートする前に、以下の2行を追加しておきます。
import matplotlib
matplotlib.use("Agg")
全体としてこのようなコードになります。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
plt.plot( [3,1,4,1,5,9,2,6,5] )
plt.savefig("graph.png")
plt.plot() の引数に2つのリストを入力すると、 片方をX軸、もう片方をY軸とした散布図を生成します。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
X = [0.7, 1.8, 3.6]
Y = [3.3, 0.7, 4.8]
plt.plot(X, Y, 'o')
plt.show()
X軸とY軸の要素数が異なるとエラーになります。