Matplotlib でグラフプログラミング【Python】
- 1 :デフォルトの名無しさん:2009/10/24(土) 21:06:22
-
高機能で柔軟性があり、使い易く、数式表示がデフォルトで可能で、
美しいグラフが作成できる人気のグラフライブラリである Matplotlib
のスレッドです。
ギャラリー
http://matplotlib.sourceforge.net/gallery.html
http://matplotlib.sourceforge.net/users/screenshots.html
ユーザーズガイド
http://matplotlib.sourceforge.net/contents.html
ダウンロード
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.1/
- 2 :デフォルトの名無しさん:2009/10/24(土) 21:07:25
- このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
- 3 :デフォルトの名無しさん:2009/10/24(土) 21:07:30
- http://pc12.2ch.net/test/read.cgi/unix/1164719425/708 より:
gnuplot vs matplotlib
2Dプロット系: "できること" で言えば、パイチャートなどがデフォルト
でプロットできる matplotlib の方が上。ちょっと混み入った設定や
アノテーションの加え方も matplotlib の方が楽。
3Dプロット系: 完成度と速度の面で gnuplot の勝ち。
プロットプログラムの再利用性: これは matplotlib の余裕勝ち。
見た目の綺麗さ: matplotlibではデフォでグラフにアンチエイリアスや
ヒンティングがかかっている。gnuplot だと wx 末端を使えば
matplotlibのそれとほとんど同様になるが、他の末端も
含めて評価するとmatplotlibに軍配が上がる。
数式: TeXのフォントがデフォルトで入っていて、インストール直後
LaTeXのインストール無しでも即効TeXと同じように書けるので matplotlib の勝ち。
結論としては、多種多様のプロットを生成したいのであれば、
matplotlibを使った方が長期的に見て効率が良さそう。特に python 使い
であれば、断然 matplotlib の方が有利。それと、gnuplotはあまり融通
が効かず、ちょっとした変更が時に面倒だったり、"できそうでできない"
ことが何気に結構あったりしたが、matplotlibなら、その心配は無さそう。
しかし、「簡単にsin(x)のプロットが作れればいいやー」程度のユーザーなら、
gnuplotでいいと思うし、そういった単純なグラフなら gnuplot の方が簡単。
- 4 :デフォルトの名無しさん:2009/10/24(土) 21:14:56
- >>1乙。ありがとう!
- 5 :デフォルトの名無しさん:2009/10/24(土) 21:18:52
- 自分でスレ立てといて言うのもなんだが、
google、インデックス早っ!
もう既にこのスレが検索結果(結構上位)に引掛ってるし。
ttp://www.google.com/search?q=matplotlib&hl=ja&lr=lang_ja
- 6 :デフォルトの名無しさん:2009/10/24(土) 21:29:06
- Debianでmatplotlibインストールしたら、バージョンが0.98.1だったぁ!
3次元プロットがギリできない〜
- 7 :デフォルトの名無しさん:2009/10/24(土) 21:29:49
- 三次元空間において、
曲面 z = f(x,y)と
曲面 z = g(x,y)
が交わる曲線をプロットする良い方法はあるかな?
- 8 :デフォルトの名無しさん:2009/10/24(土) 21:34:20
- >>7
普通に同じaxesにfとgを加えればいいでしょ。
使ったことないけど、 ax.add_collection3d 見てみれば?
ttp://matplotlib.sourceforge.net/examples/mplot3d/polys3d_demo.html
- 9 :デフォルトの名無しさん:2009/10/25(日) 01:16:42
- これ良くできてるけど、意外と知られてないよね。
gnuplotだけで頑張ってる人は一見の価値あり。
- 10 :デフォルトの名無しさん:2009/10/25(日) 09:58:48
- gnuplotだと付属のヘルプで大体マスターできるけど、
matplotlibって何か簡潔で分かり易いのない?
- 11 :デフォルトの名無しさん:2009/10/25(日) 11:25:20
- gnuplotで頑張ってきた人だけど、おもしろそうなので
ちょっと遊んでみます。
- 12 :デフォルトの名無しさん:2009/10/25(日) 21:55:41
- gnuplotだと『splot 'data.dat' using 5:6:18』とすればプロットしてくれたけど、
こっちでは自分で全部書かないといけないのかな?
自分は↓こうしているんだけど、もっと簡単な方法ってある?
#!/usr/bin/env python
import re
myRegExp = re.compile('^\s*#')
column1 = 5
column2 = 6
column3 = 18
X = []
Y = []
Y = []
fname = open('data.dat', 'r')
for lines in fname:
if myRegExp.match(lines):
print '1 line ignored.'
else:
itemList = lines.split()
X.append( float( itemList[ column1 ] ) )
Y.append( float( itemList[ column2 ] ) )
Z.append( float( itemList[ column3 ] ) )
- 13 :デフォルトの名無しさん:2009/10/26(月) 03:49:21
- 基本的にプロット用のライブラリだから、データの用意は自分で...って感じだけど、
テキスト形式を読みこむ関数はある(実際はmatplotlibのバックエンドのnumpyの機能)。
import pylab
data = pylab.loadtxt("data.dat", comments="#")
X, Y, Z = data[:,(5, 6, 8)]
- 14 :デフォルトの名無しさん:2009/10/26(月) 04:00:13
- >>12
即席で書いたやつだが、こうすれば良し。
LL = [ line.strip().split() for line in file('data.dat') ]
columns = map(list, zip(*LL))
columns[4], columns[5], column[18]
- 15 :デフォルトの名無しさん:2009/10/27(火) 05:16:57
-
matplotlibはpythonのライブラリだけど、
コアな計算部分は numpy や PIL だから、
中身は大体Cの部分が実行されてるよね?
スピードはgnuplotと比べてどのぐらい違うんだろうか?
- 16 :12:2009/10/27(火) 12:12:57
- >>13-14
ありがとう!だいぶ短くなるんですね。
pythonを使うのが初めてなので、まず言語の勉強から始めなければ。
- 17 :デフォルトの名無しさん:2009/10/27(火) 17:19:13
- >>13
NumPyでこんなスライスができるのは知らなかった
- 18 :デフォルトの名無しさん:2009/10/27(火) 22:45:51
- これはまれにみる糞スレage
- 19 :デフォルトの名無しさん:2009/10/28(水) 23:16:55
- python 使いで gnuplot の限界を感じた人が
使うってだけじゃなくて matplotlib 自体がお目あてで
来る人もいるんだねぇ
そういう人むけのチュートリアルとかが出来るといいね
- 20 :デフォルトの名無しさん:2009/11/01(日) 02:19:36
- Matplotlibでgriddataを使っているヒトいますか?ちゃんと動きますか?
Debianにgriddataをソースからインストールしたのですが、
セグメントエラーを吐くようになってしまいました。
- 21 :デフォルトの名無しさん:2009/11/06(金) 09:06:05
- >>1
ギャラリーにSICPで見かけたおねえさんがw
- 22 :デフォルトの名無しさん:2009/11/06(金) 12:15:54
- lenaだよ
- 23 :デフォルトの名無しさん:2009/11/06(金) 18:15:36
- pngファイルを読み込んでそれをそのままmatplotで表示って、
皆さんどうやってますか?
- 24 :デフォルトの名無しさん:2009/11/06(金) 18:20:08
- >>23
うーん・・・。
背景にしたいの?
- 25 :デフォルトの名無しさん:2009/11/06(金) 18:29:56
- >>24
たとえば入力した画像の明るさを読み取って、ある値以上の明るさの画素は白、他は黒にして出力
などといった画像処理につなげたいのですが…
- 26 :デフォルトの名無しさん:2009/11/06(金) 19:34:28
- import pylab
import scipy.misc
m = scipy.misc.imread("grayscale.png")
pylab.imshow(m < 127)
pylab.savefig("output.png")
こんなんでどう?
- 27 :デフォルトの名無しさん:2009/11/06(金) 22:28:28
- >>26
おお!ありがとうございます!
今ちょっと手元に無いので明日試してみます
- 28 :デフォルトの名無しさん:2009/11/08(日) 02:46:26
- 研究室の友人(C言語しか知らない)にPython勧めたら、その場に居合わせた他の研究室の奴に、
「なんでそんな聞いたこともない言語使うの?VBでいいじゃん」
って言われてしまった。理系だったらPythonのがいいと思うんだけどなぁ。。。
- 29 :デフォルトの名無しさん:2009/11/08(日) 02:56:20
- 聞いたことも無いのはお前が不勉強だからだってすぐに言えば良かったのに
- 30 :デフォルトの名無しさん:2009/11/08(日) 02:57:45
- python しらねーの?w
情弱 プギャー w
でよかったんじゃね?
- 31 :デフォルトの名無しさん:2009/11/08(日) 03:27:41
- >>28
両方使えるのがいい。
VBはExcel操作できるから、知っていれば意外と使える。
- 32 :デフォルトの名無しさん:2009/11/08(日) 10:57:21
- excel操作なんか大抵の言語でできるよ(当然pythonも)
- 33 :デフォルトの名無しさん:2009/11/08(日) 11:30:12
- VBで出来ないことまで出来るよねw
- 34 :デフォルトの名無しさん:2009/11/08(日) 11:50:40
- Fランク大学は放置しる
- 35 :デフォルトの名無しさん:2009/11/08(日) 11:51:53
- Excelに10000行くらいのデータを貼り付けてプロットしてる人を見るとアホかと思う
- 36 :デフォルトの名無しさん:2009/11/12(木) 18:17:20
- >>35
瞬時に結果表示できるなら、それで問題ない。
- 37 :デフォルトの名無しさん:2009/11/12(木) 19:11:15
- データをとるたびにそれを繰り返してるってことでしょ。
- 38 :デフォルトの名無しさん:2009/11/12(木) 19:23:59
- Excelって小学生並みのアホなグラフしか描けないのに何で使うのかな
- 39 :デフォルトの名無しさん:2009/11/12(木) 20:27:31
- 商品として優れてるからだろ。
いい製品なんて大抵ゴミだし。
- 40 :デフォルトの名無しさん:2009/11/12(木) 21:44:39
- >>37
まぁ、コピペの部分ぐらいはマクロ使うかな。
- 41 :デフォルトの名無しさん:2009/11/16(月) 13:26:05
- あんま、話題ないんね。
なんか良い入門ないかな。
28だけど、研究室に布教しようと努力中。。
- 42 :デフォルトの名無しさん:2009/11/16(月) 13:30:01
- 最近使いはじめたよ。
便利でキレイでいいね。
gnuplot みたいな手軽さは無いけど。
サクっとグラフを見たいときは gnuplot で
貼り付けたい時なんかは、もう Matplotlib だね。
- 43 :デフォルトの名無しさん:2009/11/17(火) 07:53:32
- 入門書と言えばBeginning Python Visualization位しか持ってないんだけど、
他にある?
この本でもChapter 6で扱ってるだけ。
あんまり詳しくない。
もっと網羅的な奴ないかな。
11 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
取りに行ったけどなかった。次は一時間後に取りに行くです。新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)