matplotlib

matplotlib の libping 問題の解決方法

matplotlib を使おうとすると以下のようなエラーが出た。その際に行った解決方法のメモ。 Traceback (most recent call last): File "trapezoid.py", line 4, in import matplotlib.pyplot as plt File "/usr/local/lib/python2.7/site-packages/matplotlib/…

matplotlibで等高線を書く その2

schwefel.png: CS = ax.contour(x, y, z, ) 等高線図をプロット ax.clabel(CS) 各等高線に値を記入 contour関数のオプション (一部) cmap: カラーマップ clabel関数のオプション (一部) fontsize: フォントの大きさ inline: True なら、値の周りの等高線を消…

matplotlibで等高線図を書く

schwefel.png: ax.contour(x, y, z, zdir=, offset=) contour関数のオプション(一部) zdir: どの平面に投射するか(x, y, zのいずれか) offset: 平面のどの位置に描画するか cmap: カラーマップ #!/usr/bin/env python #coding:utf-8 from mpl_toolkits.mplot…

matplotlibでサーファイスプロットする

schwefel.png: surf = ax.plot_surface(x, y, z) 三次元プロット fig.colorbar(surf) カラーバーの表示 plot_surface関数のキーワード(一部) cmap: カラーマップの指定 (hot, gray, coolwarm など) cstride: x方向の色のプロットのステップ数(デフォルト値: …

numpy で3変数の回帰分析

polyfit.png: np.polyfit(x, zip(y,z), n) n次式で3変数の回帰分析 3Dデータのプロット ax = fig.add_subplot(1, 1, 1, projection="3d", azim=) ax.plot(x,y,z) azim に値を代入して視点を変える #!/usr/bin/env python #coding:utf-8 from mpl_toolkits.mp…

numpy で2変数の回帰分析

polyfit.png: np.polyfit(x, y, n) n次式で2変数の回帰分析 np.polyval(p, t): pで表される多項式に t を代入し、値を計算して返す p[0]*t**(N-1) + p[1]*t**(N-2) + ... + p[N-2]*t + p[N-1] #!/usr/bin/env python #coding: utf-8 import matplotlib.pyplo…

ipython + matplotlib で試しに何かプロットしてみる

コンソールで以下を入力し、ipythonを起動。 $ ipython -pylab ipythonで以下を入力 In [1]: plot([1,2,3,4]) In [2]: plot([0,3,2,7]) In [3]: draw() すると、以下のようなウィンドが表示される。

matplotlib のインストール方法

1. NumPy のインストール ここ(http://sourceforge.net/projects/numpy/files/) より、numpy-1.6.2.tar.gz をダウンロード。 解凍して生成したフォルダに移動して、以下のコマンドを実行。 $ python setup.py build $ python setup.py install 2. matplotlib…

テキスト表示の際、図中の座標値を指定

関数 ax.text(x,y,txt) とすると、描画するデータを基にした(x,y)座標にテキストを表示する。 関数 ax.text(x,y,txt,transform=ax.transAxes) とすると、図の上での(x,y)座標にテキストを表示する。 #!/usr/bin/env python import matplotlib.pyplot as plt …

グラフのラベルが重ならないよう自動調整

調整した場合: 調整しない場合: fig.tight_layout() とすることで、グラフ同士のラベルが重ならない程度にグラフを小さくする。 #!/usr/bin/env python import matplotlib.pyplot as plt def plot(): fig = plt.figure() for r in range(3): for c in range(…

プロット図を縮小して空きを作る(応用)

図の右側に空きを作り、そこに箱髭図の各値(中央値、箱の上端、箱の下端、髭の上端、髭の下端、外れ値)を表示する。 #!/usr/bin/env python import random import dateutil.parser as parser import matplotlib.pyplot as plt import matplotlib.dates as md…

プロット図を縮小して空きを作る

縮小した図: 縮小しない図: fig.subplots_adjust(top=0.7) とし、図の上側に空きを作る。 #!/usr/bin/env python import random import matplotlib.pyplot as plt def plot(): xval = [random.normalvariate( 50,100) for i in range(10000)] yval = [random…

箱髭図の値

箱髭図の各値(中央値、箱の上端、箱の下端、髭の上端、髭の下端、外れ値)を取り出す。 下記の例では、図の右側に空きを作るため、空の箱髭図を二つプロットするという姑息な事をしている。(2012/12/31追記: こちら に、図を縮小して空きを作り、そのスペース…

箱髭図のプロット, その2

横軸を2010年1月〜4月の日付とし、各日[10-50]間の乱数を100個生成し、それを箱髭図としてプロット。 横軸のラベルの表示を毎月1日、15日のみにする。 import random import dateutil.parser as parser import matplotlib.pyplot as plt import matplotlib.d…

箱髭図のプロット

ラベルA: [10-50]間の乱数を1000個生成し、それを箱髭図としてプロット。 ラベルB: 平均5, 標準偏差30 の正規分布に従う乱数を1000個生成し、それを箱髭図としてプロット。 ラベルC: 平均10, 標準偏差20 の正規分布に従う乱数を1000個生成し、それを箱髭図と…

時系列データのプロット, その2

横軸を2010年1月〜4月の日付とし、各日[10-50]間の乱数をプロット。 横軸のラベルの表示を毎月1日、15日のみにする。 import random import dateutil.parser as parser import matplotlib.pyplot as plt import matplotlib.dates as mdates def plot(): x = …

時系列データのプロット

[3-7]の乱数値、[4-9]の乱数値を生成して、30分刻みの時系列データとしてプロット #!/usr/bin/env python import random import dateutil.parser as parser import matplotlib.pyplot as plt import matplotlib.dates as mdates def plot(): x = ["00:00", "…

散布図のプロット

平均 100, 標準偏差 50 の正規分布に従う乱数を10000個生成(x要素のデータとする)。 平均 -200, 標準偏差 100 の正規分布に従う乱数を10000個生成(y要素のデータとする)。 各xy要素を散布図としてプロットする。 #!/usr/bin/env python import random import…

ヒストグラムのプロット

平均 50, 標準偏差 250 の正規分布に従う乱数を10000個生成し、 そのヒストグラムを作成する。 #!/usr/bin/env python import random import matplotlib.pyplot as plt def plot(): mu = 50 sigma = 250 MAX = 1000 MIN = -1000 N = 10000 data = [random.no…