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/
145デフォルトの名無しさん
2011/10/28(金) 12:52:21.33 matplotlibはデフォルトで2つのデータ点を直線で結びますが、
一部分だけ線を引かないようにすることは出来ますか。
gnuplotなら、渡すデータを
1 1
2 2
3 3
4 4
のように空行を挟んどけば、(2,2)と(3,3)はwith lineの対象外になるのですが
一部分だけ線を引かないようにすることは出来ますか。
gnuplotなら、渡すデータを
1 1
2 2
3 3
4 4
のように空行を挟んどけば、(2,2)と(3,3)はwith lineの対象外になるのですが
146デフォルトの名無しさん
2011/10/30(日) 09:51:54.81 >>145
matlabだとnanなら線が途切れるな
matlabだとnanなら線が途切れるな
147デフォルトの名無しさん
2011/11/08(火) 11:52:07.56 去年辺りから、海外ではNumpy,Scipy,matplotlibを既存の科学用DSLの代替にしよう、
って流れが盛んですね。
米アマゾンでも、けっこうな勢いで解説書が出てるし。
既に全部、非公式ながらPython3にも対応して、前途も有望そう。
このスレも、この辺の統合スレにしたほうが盛り上がりそうですけど、
2年間で140レスか・・・
Rのスレは数学板にしかないし、ム板では盛り上がらないのかな?
って流れが盛んですね。
米アマゾンでも、けっこうな勢いで解説書が出てるし。
既に全部、非公式ながらPython3にも対応して、前途も有望そう。
このスレも、この辺の統合スレにしたほうが盛り上がりそうですけど、
2年間で140レスか・・・
Rのスレは数学板にしかないし、ム板では盛り上がらないのかな?
148デフォルトの名無しさん
2011/11/09(水) 13:53:06.66 Rは昔ここにもあった
149デフォルトの名無しさん
2011/11/09(水) 14:35:55.50 ム板なんてITドカタしかいないからな
まともに数学の話出来る訳がない
まともに数学の話出来る訳がない
150デフォルトの名無しさん
2011/11/11(金) 21:13:14.56 Rやmaximaあってもいいけどな。
>>147
そういった本ほんと盛んだよな。でももっとやすうなってくれんかな
と思ってしまう。Pythonは科学関連のライブラリはかなりほうふだから
基盤として使えるようにしておくといいよね。
p3 に対応したのか。
>>147
そういった本ほんと盛んだよな。でももっとやすうなってくれんかな
と思ってしまう。Pythonは科学関連のライブラリはかなりほうふだから
基盤として使えるようにしておくといいよね。
p3 に対応したのか。
151デフォルトの名無しさん
2011/11/19(土) 12:41:07.85 wekaとscipyどっちがオヌヌメ?
152デフォルトの名無しさん
2011/12/06(火) 22:27:37.37 scipyかな
153デフォルトの名無しさん
2011/12/17(土) 17:58:37.66 xlabelとylabelの位置が軸から離れすぎちゃう
ことがあるんだけど、たとえば
xlabel.hogehoge(0.5,-0.2)みたいな書式で
表示位置を指定する方法はありませんか?
ことがあるんだけど、たとえば
xlabel.hogehoge(0.5,-0.2)みたいな書式で
表示位置を指定する方法はありませんか?
154デフォルトの名無しさん
2011/12/21(水) 01:11:08.13 python2.6とmatplotlib0.99を使っています。
subplotで6個のグラフを作成し、
titleは、日本語で入れました。
その後、グラフをPSファイルで出力しようとしましたが出来ませんでした。
PNGファイルでは出力できます。
PS、PDFで出力することは可能でしょうか?教えてください。
subplotで6個のグラフを作成し、
titleは、日本語で入れました。
その後、グラフをPSファイルで出力しようとしましたが出来ませんでした。
PNGファイルでは出力できます。
PS、PDFで出力することは可能でしょうか?教えてください。
155デフォルトの名無しさん
2011/12/21(水) 08:05:45.11 >>154
savefigで拡張子を.pdfにすればPDFで、
.epsにすればEPSで出力できるはず。
WindowsのPython2.7、Linuxの同2.6で確認済み。
公式ドキュメントにはPDF、PS、PNG、SVGに
対応とあるが、.psだとだめだった記憶がある。
EPSで出力できればどうにでもなる気もするが。
savefigで拡張子を.pdfにすればPDFで、
.epsにすればEPSで出力できるはず。
WindowsのPython2.7、Linuxの同2.6で確認済み。
公式ドキュメントにはPDF、PS、PNG、SVGに
対応とあるが、.psだとだめだった記憶がある。
EPSで出力できればどうにでもなる気もするが。
156デフォルトの名無しさん
2011/12/22(木) 23:37:49.32 windows 64bit版がamdしかないけど、intel cpuでも大丈夫なのかな?
157デフォルトの名無しさん
2011/12/23(金) 09:05:32.23 intel EM64T は amd x64 のパクリ
158デフォルトの名無しさん
2011/12/24(土) 18:18:03.13 >>155
ありがとう、出来ました。
ありがとう、出来ました。
159デフォルトの名無しさん
2011/12/24(土) 22:46:15.24 目盛幅の指定はどうやるのでしょうか?
160デフォルトの名無しさん
2011/12/24(土) 23:53:15.06 matploblib.axis.set_ticks(ticks)ぐらいしか思いつかん
161デフォルトの名無しさん
2011/12/25(日) 00:39:05.32 excelもそうだけど、デフォルトの目盛が多すぎだよね
162デフォルトの名無しさん
2012/01/08(日) 14:32:29.58 matplotlibわかりづれえよ
なんかpythonっぽくないと言うか
でも他に無いからありがたく使ってるんですけどね‥
なんかpythonっぽくないと言うか
でも他に無いからありがたく使ってるんですけどね‥
163デフォルトの名無しさん
2012/01/08(日) 17:52:10.34 >>162
こうしたい、って思った出力が得られるまで
かなり試行錯誤が必要な気はする。
寸法とかpxとinch混在しててややこしい。
あと、インストールはgnuplotの方が楽かな。
WinやMacならスタンドアロンのバイナリも
落ちてるし。
ただ、matplotlibrcをカスタマイズしまくって、
出力されたEPSをさらにPythonでいじくってる
ような俺にとって、matplotlibほど融通のきく
グラフ描画ツールは他にない。
もっとユーザ増えれば楽しくなりそうなのだが。
不満を挙げるとすれば、rcParamでいじれる項目が
バージョンによって結構違ったりすることかな。
ググってきたTipsが手元のバージョンだと使えない
なんてことがよくあるんだけど、俺だけかな?
こうしたい、って思った出力が得られるまで
かなり試行錯誤が必要な気はする。
寸法とかpxとinch混在しててややこしい。
あと、インストールはgnuplotの方が楽かな。
WinやMacならスタンドアロンのバイナリも
落ちてるし。
ただ、matplotlibrcをカスタマイズしまくって、
出力されたEPSをさらにPythonでいじくってる
ような俺にとって、matplotlibほど融通のきく
グラフ描画ツールは他にない。
もっとユーザ増えれば楽しくなりそうなのだが。
不満を挙げるとすれば、rcParamでいじれる項目が
バージョンによって結構違ったりすることかな。
ググってきたTipsが手元のバージョンだと使えない
なんてことがよくあるんだけど、俺だけかな?
164デフォルトの名無しさん
2012/01/09(月) 00:28:00.57 なんつーか,ややこしくいじるときの設定がややこしい
(柔軟な分,axis とか fig とかいろいろな概念を理解して
それのつつき方を知っている必要がある)
あと,最初にきれいじゃなくていいからとりあえず
おまかせコースで「データファイルとりあえずプロットしろ」の
段階のお手軽さも負けてる(gnuplot比)
もちろん,python で好きなようにいじれる,
numpy とかのデータいじり環境と一体化できる,
というのがメリットなんだけど
(柔軟な分,axis とか fig とかいろいろな概念を理解して
それのつつき方を知っている必要がある)
あと,最初にきれいじゃなくていいからとりあえず
おまかせコースで「データファイルとりあえずプロットしろ」の
段階のお手軽さも負けてる(gnuplot比)
もちろん,python で好きなようにいじれる,
numpy とかのデータいじり環境と一体化できる,
というのがメリットなんだけど
165デフォルトの名無しさん
2012/01/09(月) 11:08:40.01 あとチト遅いような気がするな。
166デフォルトの名無しさん
2012/01/13(金) 00:19:06.31167デフォルトの名無しさん
2012/01/13(金) 11:55:41.30 そういえば棒グラフの描き方を調べないといけないんだった
半年くらい忘れてた
半年くらい忘れてた
168デフォルトの名無しさん
2012/01/13(金) 17:11:50.25 ああ
あんたか
あんたか
169デフォルトの名無しさん
2012/01/24(火) 00:12:50.52 dashes=[4,1,2,1]
line=ax.plot(x, y, linestyle="--")
line[0].set_dashes(dashes)
とか書くと破線のフォーマットを自由に
変更できますよね?
同じことを等高線でやりたいのですが、
set_dashes()のような命令はどのような書式で
行えばいいのでしょうか?
現状の(デフォルトの)破線を適用しているコードは
こんな感じです。
cs=matplotlib.contour(x, y, z)
zc=CS.collections[0]
zc.set_linestyle("--")
#ここでset_dashesしたい。
line=ax.plot(x, y, linestyle="--")
line[0].set_dashes(dashes)
とか書くと破線のフォーマットを自由に
変更できますよね?
同じことを等高線でやりたいのですが、
set_dashes()のような命令はどのような書式で
行えばいいのでしょうか?
現状の(デフォルトの)破線を適用しているコードは
こんな感じです。
cs=matplotlib.contour(x, y, z)
zc=CS.collections[0]
zc.set_linestyle("--")
#ここでset_dashesしたい。
170デフォルトの名無しさん
2012/10/08(月) 20:23:52.59 oppy
171デフォルトの名無しさん
2012/10/11(木) 20:10:07.37 tes
172デフォルトの名無しさん
2013/11/21(木) 19:06:57.78 あげ
173デフォルトの名無しさん
2013/11/22(金) 17:08:32.79 酷い過疎っぷりだな・・・
174デフォルトの名無しさん
2013/11/29(金) 09:45:26.25 2年近くネタ枯渇か
順調に使われてると思うんだけど…
順調に使われてると思うんだけど…
175デフォルトの名無しさん
2013/11/29(金) 13:02:56.71176デフォルトの名無しさん
2013/11/29(金) 13:11:39.35 svg
177デフォルトの名無しさん
2013/12/04(水) 20:54:41.69 node.js & R
node.js & octave
peg.js, D3.js
node.js & octave
peg.js, D3.js
178デフォルトの名無しさん
2014/02/02(日) 13:37:53.34 こんにちは。
凡例の文字列に日本語フォントを使いたいのですが、うまくいきません。
例があればご教授いただけないでしょうか。
凡例の文字列に日本語フォントを使いたいのですが、うまくいきません。
例があればご教授いただけないでしょうか。
179デフォルトの名無しさん
2014/02/04(火) 00:32:06.20 フォントに日本語を表示できる物に変えれば良かったはず。
180デフォルトの名無しさん
2014/07/22(火) 21:25:48.41ID:0N9TC6VR iPhthon Notebookチラ裏 for Windows
・インストール
依存ライブラリがたくさんある
個別にパッケージ化したサイトもあるけどWinPythonを入れるのが簡単
要らないものもたくさん入っているので展開すると1GBくらい
・起動するとデフォルトブラウザではなくIEが立ち上がる
・ブラウザが起動するときインターネットにつながっていないとダメ
起動の度に何かを外から拾ってきてブラウザをレンダリングしている
・Notebookの名前を日本語にするとそのNotebookは開けなくなる
実体は個別の.ipynbファイルとして
(インスートルディレクトリ)¥WinPython-バージョン番号¥python-バージョン番号¥Scripts¥
にある、ここのファイル名をASCIIに書き換えると即時ブラウザに反映される
.ipynb_checkpoints¥フォルダ以下に同名のチェックポイントファイルもある
・簡単なスクリプトでグラフを書いても結構大量にメモリを食う
256点の一次元配列数個でグラフを描いて50-250MBくらい
これを気にしなければAtomタブレットでも使える
・セル内の文字選択がマウスだけではうまくいかないことがある?
マウスとキーボードの両方必要
ソフトキーボードでは簡単な編集はできるけど文字選択できないの
マウスとソフトキーボードでもたぶん文字選択できないの
・インストール
依存ライブラリがたくさんある
個別にパッケージ化したサイトもあるけどWinPythonを入れるのが簡単
要らないものもたくさん入っているので展開すると1GBくらい
・起動するとデフォルトブラウザではなくIEが立ち上がる
・ブラウザが起動するときインターネットにつながっていないとダメ
起動の度に何かを外から拾ってきてブラウザをレンダリングしている
・Notebookの名前を日本語にするとそのNotebookは開けなくなる
実体は個別の.ipynbファイルとして
(インスートルディレクトリ)¥WinPython-バージョン番号¥python-バージョン番号¥Scripts¥
にある、ここのファイル名をASCIIに書き換えると即時ブラウザに反映される
.ipynb_checkpoints¥フォルダ以下に同名のチェックポイントファイルもある
・簡単なスクリプトでグラフを書いても結構大量にメモリを食う
256点の一次元配列数個でグラフを描いて50-250MBくらい
これを気にしなければAtomタブレットでも使える
・セル内の文字選択がマウスだけではうまくいかないことがある?
マウスとキーボードの両方必要
ソフトキーボードでは簡単な編集はできるけど文字選択できないの
マウスとソフトキーボードでもたぶん文字選択できないの
181デフォルトの名無しさん
2014/07/23(水) 14:58:19.39ID:pGSYFJcR >>144
これありますか?パターンで塗りつぶしができれば白黒印刷に便利なのですが、ギャラリーにも見あたらないし、検索してもこのレスぐらいしか引っかからないので半分諦めていますが…
これありますか?パターンで塗りつぶしができれば白黒印刷に便利なのですが、ギャラリーにも見あたらないし、検索してもこのレスぐらいしか引っかからないので半分諦めていますが…
182デフォルトの名無しさん
2014/07/24(木) 09:36:48.44ID:0egdwMYx matplotlib fill hatching で画像検索
やり方わかったら教えてね ;-)
やり方わかったら教えてね ;-)
183デフォルトの名無しさん
2014/07/30(水) 09:09:31.45ID:re+bx8Nt >>182
やりたかったことが実現できました。どうもありがとう。公式含めてもっとちゃんと探さないとだめですね。失礼しました
python - How do I plot hatched bars using pandas? - Stack Overflow
http://stackoverflow.com/questions/22833404/how-do-i-plot-hatched-bars-using-pandas
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
ax = plt.figure(figsize=(10, 6)).add_subplot(111)
df.plot(ax=ax, kind='bar', legend=False)
bars = ax.patches
hatches = ''.join(h*len(df) for h in 'x/O.')
for bar, hatch in zip(bars, hatches):
?? ?? bar.set_hatch(hatch)
ax.legend(loc='center right', bbox_to_anchor=(1, 1), ncol=4)
やりたかったことが実現できました。どうもありがとう。公式含めてもっとちゃんと探さないとだめですね。失礼しました
python - How do I plot hatched bars using pandas? - Stack Overflow
http://stackoverflow.com/questions/22833404/how-do-i-plot-hatched-bars-using-pandas
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
ax = plt.figure(figsize=(10, 6)).add_subplot(111)
df.plot(ax=ax, kind='bar', legend=False)
bars = ax.patches
hatches = ''.join(h*len(df) for h in 'x/O.')
for bar, hatch in zip(bars, hatches):
?? ?? bar.set_hatch(hatch)
ax.legend(loc='center right', bbox_to_anchor=(1, 1), ncol=4)
2014/09/27(土) 22:40:08.06ID:W7xxfy9p
Ruby3には静的な型を導入するかもだって
理由は最近生まれたスクリプト言語が静的型を持ってるからって・・なんじゃその理由
後方互換なんて関係ねぇーそんなの関係ねぇー、おっバッッカーッ
理由は最近生まれたスクリプト言語が静的型を持ってるからって・・なんじゃその理由
後方互換なんて関係ねぇーそんなの関係ねぇー、おっバッッカーッ
2014/09/27(土) 22:40:57.75ID:W7xxfy9p
あ、スレまちがえた、、失礼w
186デフォルトの名無しさん
2015/08/13(木) 13:55:40.44ID:LC3PBYmK このスレPyQtGraphの話ってしてもいいのかな
187デフォルトの名無しさん
2015/08/13(木) 13:56:12.96ID:LC3PBYmK あげ
188デフォルトの名無しさん
2015/10/08(木) 18:06:00.97ID:pEnalajB オライリーのある本にmatplotlibのbasemapは
shapefile形式の地図を読み込んで描画できるって書いてあったんだけど
http://metro.teczno.com/#osaka-kyoto
ここの大阪の道路と電車の地図を読み込むことができない
shapefile形式の地図を読み込んで描画できるって書いてあったんだけど
http://metro.teczno.com/#osaka-kyoto
ここの大阪の道路と電車の地図を読み込むことができない
189デフォルトの名無しさん
2015/10/08(木) 18:37:55.20ID:pEnalajB cythonにすれば静的型を扱える
190デフォルトの名無しさん
2015/10/30(金) 12:12:59.83ID:bGTI8z09 windowsだと途中で応答無くなるのなんとかならないかな
191デフォルトの名無しさん
2015/11/30(月) 02:13:04.21ID:HuGRRAxn パソコンによって微妙にグラフ出力(軸名の太さなど)が違うのはどうやれば対処できますか?
192デフォルトの名無しさん
2015/11/30(月) 08:54:23.14ID:A2VxB4My OSの違いではないでしょうか?
環境を書いて下さい。
環境を書いて下さい。
193デフォルトの名無しさん
2015/11/30(月) 22:17:26.96ID:xNC+/SUX basemap
194デフォルトの名無しさん
2015/12/08(火) 21:04:09.56ID:I8RIi9jS >>192
同じOSでUSBとHDDに保存しているwinpythonにて実行しました。(どちらも同じバージョン)
すると、やはり軸タイトルが太字になっていたりします。(同じスクリプト)
OSの関係については、同じパソコンでも日によって先述の症状が出たりするのでわかりません
同じOSでUSBとHDDに保存しているwinpythonにて実行しました。(どちらも同じバージョン)
すると、やはり軸タイトルが太字になっていたりします。(同じスクリプト)
OSの関係については、同じパソコンでも日によって先述の症状が出たりするのでわかりません
195デフォルトの名無しさん
2016/02/26(金) 12:57:53.04ID:FYh5zmj6 matplotlib使って、リアルタイムに送られたデータを元にグラフ作成は可能でしょうか?
196デフォルトの名無しさん
2016/02/26(金) 14:29:31.34ID:VQGl6zaq 可能です
197デフォルトの名無しさん
2016/02/26(金) 14:38:30.00ID:VQGl6zaq ion
ioff
pause
draw
relim
ioff
pause
draw
relim
198デフォルトの名無しさん
2016/02/26(金) 14:55:46.37ID:FYh5zmj6199デフォルトの名無しさん
2016/04/23(土) 05:43:37.00ID:oAofrbJu 質問:scipyのインストール方法を教えてください。
Windows10にPython3.5.1をインストールして、numpyやらをpipでインストールしたのですが
scipyはエラーとなってしまいインストールできません。色々調べて、
ttp://typea.info/blg/glob/2015/09/windows-virtualenv-python27-pip-wheel-scipywindows.html
のサイトを参考にpy -m pip install c:\user\hoge\scipy-0.17.0-cp35-none-win_amd64.whl
で無事にインストールできました。できたのですが、何かおかしいのです。
>>> import scipy.misc
Traceback (most recent call last):
File
Windows10にPython3.5.1をインストールして、numpyやらをpipでインストールしたのですが
scipyはエラーとなってしまいインストールできません。色々調べて、
ttp://typea.info/blg/glob/2015/09/windows-virtualenv-python27-pip-wheel-scipywindows.html
のサイトを参考にpy -m pip install c:\user\hoge\scipy-0.17.0-cp35-none-win_amd64.whl
で無事にインストールできました。できたのですが、何かおかしいのです。
>>> import scipy.misc
Traceback (most recent call last):
File
200デフォルトの名無しさん
2016/04/23(土) 05:44:57.74ID:oAofrbJu File "<pyshell#7>", line 1, in <module>
import scipy.misc
File "C:\Program Files\Python\Python35\lib\site-packages\scipy\misc\__init__.py", line 51, in <module>
from scipy.special import comb, factorial, factorial2, factorialk
File "C:\Program Files\Python\Python35\lib\site-packages\scipy\special\__init__.py", line 627, in <module>
from ._ufuncs import *
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
他にもscipy.linalgがありません。皆さんはどのようにscipyをインストールしたのでしょうか。教えてください。
import scipy.misc
File "C:\Program Files\Python\Python35\lib\site-packages\scipy\misc\__init__.py", line 51, in <module>
from scipy.special import comb, factorial, factorial2, factorialk
File "C:\Program Files\Python\Python35\lib\site-packages\scipy\special\__init__.py", line 627, in <module>
from ._ufuncs import *
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
他にもscipy.linalgがありません。皆さんはどのようにscipyをインストールしたのでしょうか。教えてください。
201デフォルトの名無しさん
2016/04/23(土) 08:31:04.23ID:1uyTz51m Anacondaで全部まとめてぶっこむのが楽よ
202デフォルトの名無しさん
2016/04/23(土) 12:11:30.63ID:qkM7UD7C >>199
普通にインストール出来たけど
普通にインストール出来たけど
203デフォルトの名無しさん
2016/04/23(土) 12:32:28.32ID:oAofrbJu >>201
ありがとうございます。Anaconda知りませんでした、早速インストールして無事にimport scipy.miscが通りました。
その後に、Anacondaを入れる前から入っているPython(以下、生Pythonとする)でも、scipy.miscが通るようになりました。
何故だろうと調べてみるとAnacondaが設定した環境変数(C:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin)の
おかげでした。これを消すと、生Pythonではimport scipy.miscでエラーとなります。AnacondaのPythonはこの環境変数が無くても
scipy.miscが通ります。
ということで、>>199でscipyをinstallして、かつ、Anacondaもインストールすれば生Pythonの方もscipyが使えるようになります。
ありがとうございます。Anaconda知りませんでした、早速インストールして無事にimport scipy.miscが通りました。
その後に、Anacondaを入れる前から入っているPython(以下、生Pythonとする)でも、scipy.miscが通るようになりました。
何故だろうと調べてみるとAnacondaが設定した環境変数(C:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin)の
おかげでした。これを消すと、生Pythonではimport scipy.miscでエラーとなります。AnacondaのPythonはこの環境変数が無くても
scipy.miscが通ります。
ということで、>>199でscipyをinstallして、かつ、Anacondaもインストールすれば生Pythonの方もscipyが使えるようになります。
204デフォルトの名無しさん
2016/04/23(土) 12:37:03.29ID:oAofrbJu205デフォルトの名無しさん
2016/04/23(土) 13:16:58.57ID:qkM7UD7C >>> import scipy
>>> import scipy.misc
問題ないなー
>>> import scipy.misc
問題ないなー
206デフォルトの名無しさん
2016/06/17(金) 11:15:19.99ID:l3PGNOtI n
207デフォルトの名無しさん
2016/07/15(金) 00:37:49.11ID:zIcmXt8M つい先週くらいから仕事でpythonを覚えることになり、vagrantでCentOS6.8でpyenvとvirtualenvで下記の環境を作りました。
python: 3.5.2
pandas: 0.18.1
numpy: 1.11.1
matplotlib: 1.5.1
ta-lib
http://matplotlib.org/examples/pylab_examples/finance_demo.html
を参考にローソク足は出力できました。
ローソク足と同じプロットの中に移動平均線がうまく出せずに詰まってます。
データはMySQLからpandas.io.sqlで取得しています。
移動平均線は、
sma5 = pd.Series(df['close']).rolling(window=5)
sma5.mean().plot(ax=ax)
でやってみました。
ta-libでも試しましたが、ローソク足と移動平均線を出力すると、
右端と左端に縮まって表示されてしまいます。
どこかに参考になるサイトやソースがあれば教えていただきたいです。
長文で失礼しました。
python: 3.5.2
pandas: 0.18.1
numpy: 1.11.1
matplotlib: 1.5.1
ta-lib
http://matplotlib.org/examples/pylab_examples/finance_demo.html
を参考にローソク足は出力できました。
ローソク足と同じプロットの中に移動平均線がうまく出せずに詰まってます。
データはMySQLからpandas.io.sqlで取得しています。
移動平均線は、
sma5 = pd.Series(df['close']).rolling(window=5)
sma5.mean().plot(ax=ax)
でやってみました。
ta-libでも試しましたが、ローソク足と移動平均線を出力すると、
右端と左端に縮まって表示されてしまいます。
どこかに参考になるサイトやソースがあれば教えていただきたいです。
長文で失礼しました。
208デフォルトの名無しさん
2016/07/15(金) 19:18:46.39ID:8P+uiz2j >右端と左端に縮まって表示されてしまいます。
画像貼るかソース貼るかなんかしろよ
画像貼るかソース貼るかなんかしろよ
209デフォルトの名無しさん
2016/07/15(金) 23:33:54.08ID:zIcmXt8M >208
207です、すみませんでした。
%matplotlib inline
import pandas as pd
import numpy as np
import talib as ta
import matplotlib.pyplot as plt
from matplotlib.finance import candlestick_ohlc
import pymysql.cursors
import pandas.io.sql as psql
# print(df)
# date start high low close
#0 2016-01-04 18818.6 18951.1 18394.4 18451.0
#1 2016-01-05 18398.8 18547.4 18327.5 18374.0
#2 2016-01-06 18410.6 18469.4 18064.3 18191.3
dates = df['date']
tmp = df['date'].values.astype('datetime64[D]')
df['date'] = tmp.astype(float)
plt.figure(figsize=(10, 6))
ax = plt.subplot(111)
plt.xticks(df['date'][::60],[x.strftime('%Y-%m-%d') for x in dates][::60])
plt.grid()
candlestick_ohlc(ax,df.values,width=0.7,colorup='red',colordown='blue')
sma5 = pd.Series(df['close']).rolling(window=5)
sma5.mean().plot()
plt.show()
http://qiita.com/ynakayama/items/badbf9804835d2da425e
ここのページのような感じで出力させたいです。
207です、すみませんでした。
%matplotlib inline
import pandas as pd
import numpy as np
import talib as ta
import matplotlib.pyplot as plt
from matplotlib.finance import candlestick_ohlc
import pymysql.cursors
import pandas.io.sql as psql
# print(df)
# date start high low close
#0 2016-01-04 18818.6 18951.1 18394.4 18451.0
#1 2016-01-05 18398.8 18547.4 18327.5 18374.0
#2 2016-01-06 18410.6 18469.4 18064.3 18191.3
dates = df['date']
tmp = df['date'].values.astype('datetime64[D]')
df['date'] = tmp.astype(float)
plt.figure(figsize=(10, 6))
ax = plt.subplot(111)
plt.xticks(df['date'][::60],[x.strftime('%Y-%m-%d') for x in dates][::60])
plt.grid()
candlestick_ohlc(ax,df.values,width=0.7,colorup='red',colordown='blue')
sma5 = pd.Series(df['close']).rolling(window=5)
sma5.mean().plot()
plt.show()
http://qiita.com/ynakayama/items/badbf9804835d2da425e
ここのページのような感じで出力させたいです。
210デフォルトの名無しさん
2016/07/16(土) 15:23:01.94ID:9Y22Kipm 期待されてるデータはこんな感じっぽい
index start close high low
index start close high low
211デフォルトの名無しさん
2016/07/16(土) 15:24:59.58ID:9Y22Kipm ああ違うな
期待されてるデータはこんな感じっぽい
index start close low high
期待されてるデータはこんな感じっぽい
index start close low high
212デフォルトの名無しさん
2016/07/18(月) 11:14:03.26ID:p3/5cugZ >>211
ありがとうございます。
ヒントを頂いて、色々試しまして期待通りの出力ができました。
sma5 = pd.Series(data=df['close']).rolling(window=5).mean()
ax.plot(df['date'],sma5)
211さんの書き込みがなければ、ググり方の発想すら出てこなかったので、
本当に助かりました。ありがとうございました。
ありがとうございます。
ヒントを頂いて、色々試しまして期待通りの出力ができました。
sma5 = pd.Series(data=df['close']).rolling(window=5).mean()
ax.plot(df['date'],sma5)
211さんの書き込みがなければ、ググり方の発想すら出てこなかったので、
本当に助かりました。ありがとうございました。
213デフォルトの名無しさん
2016/09/29(木) 23:38:20.85ID:2yVpSx56 このようなシンプルな白黒の画像があります
http://i.imgur.com/jEgghPx.png
これを下記のコードで表示すると
from PIL import Image as image
import matplotlib.pyplot as plt
import numpy as np
im = np.array(image.open('jEgghPx.png'))
plt.imshow(im)
plt.show()
こんなヘンな赤青の図になってしまいます。
http://imgur.com/a/l9Ifw
何とかしてもとの白黒で正しく表示できないものでしょうか
http://i.imgur.com/jEgghPx.png
これを下記のコードで表示すると
from PIL import Image as image
import matplotlib.pyplot as plt
import numpy as np
im = np.array(image.open('jEgghPx.png'))
plt.imshow(im)
plt.show()
こんなヘンな赤青の図になってしまいます。
http://imgur.com/a/l9Ifw
何とかしてもとの白黒で正しく表示できないものでしょうか
214デフォルトの名無しさん
2016/09/30(金) 13:41:37.59ID:4mQfWuIk from scipy import misc
def mm(im):
..for y in range(len(im)):
....for x in range(len(im[y])):
......if 10 < y < 12: im[y][x] = x * 511 / len(im[y])
......if 10 < x < 12: im[y][x] = y * 511 / len(im)
..return im
(略)
im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(mm(np.uint32(im2)))
(略)
def mm(im):
..for y in range(len(im)):
....for x in range(len(im[y])):
......if 10 < y < 12: im[y][x] = x * 511 / len(im[y])
......if 10 < x < 12: im[y][x] = y * 511 / len(im)
..return im
(略)
im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(mm(np.uint32(im2)))
(略)
215デフォルトの名無しさん
2016/09/30(金) 13:51:49.16ID:4mQfWuIk216デフォルトの名無しさん
2016/10/01(土) 13:59:29.48ID:tpKY3oHI217デフォルトの名無しさん
2016/10/02(日) 13:38:37.38ID:GX41vvMR im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(np.uint32(im2))
と比べてごらん
plt.imshow(np.uint32(im2))
と比べてごらん
218デフォルトの名無しさん
2016/10/02(日) 13:47:46.65ID:GX41vvMR あとこんなのでも行けるはず
def m(im):
..im[0][0] = 0
..im[len(im)-1][len(im[y])-1] = 511
..return im
(略)
im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(m(np.uint32(im2)))
(略)
def m(im):
..im[0][0] = 0
..im[len(im)-1][len(im[y])-1] = 511
..return im
(略)
im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(m(np.uint32(im2)))
(略)
219デフォルトの名無しさん
2016/10/04(火) 14:33:18.64ID:ZPmHgmj0 こんなのでも逝ける
from scipy import misc
def mmm(im):
..for y in range(len(im)):
....for x in range(len(im[y])):
......im[y][x] = 511 - im[y][x]
..im[0][0] = 0
..im[len(im)-1][len(im[y])-1] = 511
..return im
(略)
im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(mmm(np.uint32(im2)))
(略)
from scipy import misc
def mmm(im):
..for y in range(len(im)):
....for x in range(len(im[y])):
......im[y][x] = 511 - im[y][x]
..im[0][0] = 0
..im[len(im)-1][len(im[y])-1] = 511
..return im
(略)
im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(mmm(np.uint32(im2)))
(略)
220デフォルトの名無しさん
2016/10/09(日) 23:30:59.35ID:xxl1bgNt matplotlibで簡単なGUIのアプリケーションを自作しようと考えています
そこでボタンを押したときにキャンバスの中央に点がでるようなGUIを作成しようとしているのですが
from numpy.random import rand
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
fig = plt.figure()
ax = fig.add_subplot(111)
plt.subplots_adjust(bottom=0.2)
class Index(object):
def next(self, event):
xdata = event.xdata
ydata = event.ydata
plt.plot(0,0,color="red",marker="o")
plt.draw()
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
bnext = Button(axnext, 'circle')
bnext.on_clicked(Index().next)
plt.show()
サイトを参考に以上のように組んではいるのですが
ボタンを押した際ボタンの方の中央にプロットされてしまいます
これをキャンバスの方の中央にプロットするにはどのようにしたらよいでしょうか?
欲を言えばボタンを押した後に中央のキャンバス上でクリックした場所に赤い点を出したいです
そこでボタンを押したときにキャンバスの中央に点がでるようなGUIを作成しようとしているのですが
from numpy.random import rand
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
fig = plt.figure()
ax = fig.add_subplot(111)
plt.subplots_adjust(bottom=0.2)
class Index(object):
def next(self, event):
xdata = event.xdata
ydata = event.ydata
plt.plot(0,0,color="red",marker="o")
plt.draw()
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
bnext = Button(axnext, 'circle')
bnext.on_clicked(Index().next)
plt.show()
サイトを参考に以上のように組んではいるのですが
ボタンを押した際ボタンの方の中央にプロットされてしまいます
これをキャンバスの方の中央にプロットするにはどのようにしたらよいでしょうか?
欲を言えばボタンを押した後に中央のキャンバス上でクリックした場所に赤い点を出したいです
221デフォルトの名無しさん
2016/10/10(月) 17:37:13.33ID:Q436H0RN >キャンバスの中央に点がでるような
class Index(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(0, 0, color="red", marker="o")
plt.draw()
(略)
bnext.on_clicked(Index(ax).next)
class Index(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(0, 0, color="red", marker="o")
plt.draw()
(略)
bnext.on_clicked(Index(ax).next)
222デフォルトの名無しさん
2016/10/10(月) 17:44:14.43ID:Q436H0RN >キャンバス上でクリックした場所に垢移転
class Index(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="red", marker="o")
plt.draw()
(略)
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
fig.canvas.mpl_connect('button_press_event', Index(ax).next)
(略)
#最初にクリックしたときだけ、どの場所クリックしても中央になるのは座標軸の方が変化するからっぽい。
class Index(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="red", marker="o")
plt.draw()
(略)
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
fig.canvas.mpl_connect('button_press_event', Index(ax).next)
(略)
#最初にクリックしたときだけ、どの場所クリックしても中央になるのは座標軸の方が変化するからっぽい。
223デフォルトの名無しさん
2016/10/10(月) 19:20:25.82ID:cQ1gLyON >>221 >>222
回答ありがとうございます
参考にして書いて見た結果ボタンを押した位置に応じた場所に点がでるようになりました
度々ですみませんが今度は
1度ボタンを押した後、大きいキャンバスのどこかを2度目のクリックをしたときそこに
1度だけ点がでるようにしたいです
ここからどう変えれば良いでしょうか?(イメージとしてはボタンを押すと,次のクリックの入力待ちになるイメージです
from numpy.random import rand
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
fig = plt.figure()
ax = fig.add_subplot(111)
plt.subplots_adjust(bottom=0.2)
class Index(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="red", marker="o")
plt.draw()
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
fig.canvas.mpl_connect('button_press_event', Index(ax).next)
bnext = Button(axnext, 'circle')
bnext.on_clicked(Index(ax).next)
plt.show()
回答ありがとうございます
参考にして書いて見た結果ボタンを押した位置に応じた場所に点がでるようになりました
度々ですみませんが今度は
1度ボタンを押した後、大きいキャンバスのどこかを2度目のクリックをしたときそこに
1度だけ点がでるようにしたいです
ここからどう変えれば良いでしょうか?(イメージとしてはボタンを押すと,次のクリックの入力待ちになるイメージです
from numpy.random import rand
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
fig = plt.figure()
ax = fig.add_subplot(111)
plt.subplots_adjust(bottom=0.2)
class Index(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="red", marker="o")
plt.draw()
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
fig.canvas.mpl_connect('button_press_event', Index(ax).next)
bnext = Button(axnext, 'circle')
bnext.on_clicked(Index(ax).next)
plt.show()
224デフォルトの名無しさん
2016/10/11(火) 00:20:24.10ID:7970w8cq >>223 追加
聞いてばかりですみません、もう一つ聞きたいことがありまして
ボタンを2つにした場合には
fig.canvas.mpl_connectをどうつなげるべきなのでしょうか?
class Index1(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="red", marker="o")
plt.draw()
def prev(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="blue", marker="o")
plt.draw()
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
axprev = plt.axes([0.11, 0.05, 0.1, 0.075])
fig.canvas.mpl_connect('button_press_event', Index(ax).???)
bnext = Button(axnext, 'red')
bnext.on_clicked(Index(ax).next)
bnext = Button(axprev, 'blue')
bnext.on_clicked(Index(ax).prev)
聞いてばかりですみません、もう一つ聞きたいことがありまして
ボタンを2つにした場合には
fig.canvas.mpl_connectをどうつなげるべきなのでしょうか?
class Index1(object):
def __init__(self, ax):
self.ax = ax
def next(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="red", marker="o")
plt.draw()
def prev(self, event):
xdata = event.xdata
ydata = event.ydata
self.ax.plot(xdata, ydata, color="blue", marker="o")
plt.draw()
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
axprev = plt.axes([0.11, 0.05, 0.1, 0.075])
fig.canvas.mpl_connect('button_press_event', Index(ax).???)
bnext = Button(axnext, 'red')
bnext.on_clicked(Index(ax).next)
bnext = Button(axprev, 'blue')
bnext.on_clicked(Index(ax).prev)
225デフォルトの名無しさん
2016/10/11(火) 13:31:18.69ID:QeFd4z39226デフォルトの名無しさん
2016/10/11(火) 14:10:27.65ID:7970w8cq >>225
指摘していただきましてすみません
>>224の方は
クラスをもう一つ作り
fig.canvas.mpl_connect('button_press_event', Index(ax).next)
fig.canvas.mpl_connect('button_press_event', Index(ax).prev)
で解決しました.
こちらに関しては少し変えたりなどで試行せずに質問してしまっていたため
申し訳なく思います
ただ>>223の方が
http://retrofocus28.blogspot.jp/2012/07/matplotlib.html
こちらを組み合わせながら行っても上手くいかず
入力待ちの方法が思い浮かばなかったために質問させていただいております
もしよろしければもう少しお付き合いください
指摘していただきましてすみません
>>224の方は
クラスをもう一つ作り
fig.canvas.mpl_connect('button_press_event', Index(ax).next)
fig.canvas.mpl_connect('button_press_event', Index(ax).prev)
で解決しました.
こちらに関しては少し変えたりなどで試行せずに質問してしまっていたため
申し訳なく思います
ただ>>223の方が
http://retrofocus28.blogspot.jp/2012/07/matplotlib.html
こちらを組み合わせながら行っても上手くいかず
入力待ちの方法が思い浮かばなかったために質問させていただいております
もしよろしければもう少しお付き合いください
227デフォルトの名無しさん
2016/10/12(水) 10:22:57.21ID:G/hcjkA/228デフォルトの名無しさん
2016/10/14(金) 15:42:20.46ID:z5IC4QPv グラフ描画機能は
matplotlibとRのggplot2は
どっちが優れてますか?
matplotlibとRのggplot2は
どっちが優れてますか?
229デフォルトの名無しさん
2017/03/11(土) 11:10:15.21ID:qCTmGWaI pandas使ったらさあ、ちょっと前なのにパラメータがrows, colsからindexとcolumnに変わってたりと
大して意味のない気まぐれな変更多くて修正めんどくさくて大変だった
いったん決めたインターフェースは簡単に変えるなよ
大して意味のない気まぐれな変更多くて修正めんどくさくて大変だった
いったん決めたインターフェースは簡単に変えるなよ
230デフォルトの名無しさん
2017/03/11(土) 11:37:03.12ID:JsoExgwj >>229
2日越しのマルチ乙
2日越しのマルチ乙
231デフォルトの名無しさん
2017/05/05(金) 14:10:16.42ID:hoK7VIFg すみません、
テラタームでログインして、サーバ上でPythonを触っているのですが、
その場合、Matplotlibで作成したグラフはどのようにしたら表示できますか?
テラタームでログインして、サーバ上でPythonを触っているのですが、
その場合、Matplotlibで作成したグラフはどのようにしたら表示できますか?
232デフォルトの名無しさん
2017/05/05(金) 15:29:08.61ID:E/UcmmKD sshでXのportforwardとかかな
233デフォルトの名無しさん
2017/05/05(金) 15:34:23.95ID:hoK7VIFg >>232
portforwardといいますと?
portforwardといいますと?
234デフォルトの名無しさん
2017/07/20(木) 19:10:48.26ID:ZZQl41L2 ssh
235デフォルトの名無しさん
2017/11/10(金) 19:10:16.21ID:81bW6/qw 一番簡単なのはjupyter notebook使うことだね。
236デフォルトの名無しさん
2018/03/31(土) 19:51:41.75ID:RRMYNfyR 3D版のScatterでvmax指定が効かないな…
zticksも存在しないし
透明の点をプロットして拡げるしかないのか
zticksも存在しないし
透明の点をプロットして拡げるしかないのか
237デフォルトの名無しさん
2018/05/23(水) 19:58:38.64ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
UWPF3
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
UWPF3
238デフォルトの名無しさん
2018/07/05(木) 01:40:39.11ID:RfoszcD2 XAO
239デフォルトの名無しさん
2019/04/01(月) 18:19:51.64ID:zbbYcLmt 今は jupyter labやな
240デフォルトの名無しさん
2019/05/23(木) 10:35:23.92ID:eybwZjzY matplotlib.plot にも sympy.geometory にも Polygon ってあるのな。
これをお互いに変換するのはどうしたらよいの? sympy からplot で良い。
sympy.geometry
Polygon(Point2D(94, 31), Point2D(388, 157), Point2D(472, 199), Point2D(850, 598), Point2D(787, 897), Point2D(110, 927))
matplotlib.plot
Polygon( [[ 94 31],[990 31],[990 927], [ 94 927]]) # np.array
これをお互いに変換するのはどうしたらよいの? sympy からplot で良い。
sympy.geometry
Polygon(Point2D(94, 31), Point2D(388, 157), Point2D(472, 199), Point2D(850, 598), Point2D(787, 897), Point2D(110, 927))
matplotlib.plot
Polygon( [[ 94 31],[990 31],[990 927], [ 94 927]]) # np.array
241デフォルトの名無しさん
2019/05/23(木) 19:05:18.50ID:KLPLdAni g = Polygon(Point2D(94, 31), Point2D(388, 157), Point2D(472, 199), Point2D(850, 598), Point2D(787, 897), Point2D(110, 927))
matplotlib.pyplot.Polygon(np.array(list(map(np.array, g.vertices))))
matplotlib.pyplot.Polygon(np.array(list(map(np.array, g.vertices))))
242デフォルトの名無しさん
2019/05/24(金) 15:20:24.68ID:MR3FxfYE >>241 ありがとう。 なんとかかんとか自力でゴリゴリ変換してみてた。 参考にさせてもらいます。
243デフォルトの名無しさん
2019/05/24(金) 15:39:14.64ID:/7dQNzPT g = Polygon(Point2D(94, 31), Point2D(388, 157), Point2D(472, 199), Point2D(850, 598), Point2D(787, 897), Point2D(110, 927))
matplotlib.pyplot.Polygon(g.vertices)
これでええわ
matplotlib.pyplot.Polygon(g.vertices)
これでええわ
244デフォルトの名無しさん
2019/05/27(月) 14:09:07.82ID:g1o9JmK9 >>243 matplotlib ではPoint2Dは扱えないからダメでしょ。
hxy = np.array(list([i.x,i.y] for i in g.vertices))
とPoint2D(x,y) から (x,y) を取り出す必要がある。
つまり
g = Polygon(Point2D(94, 31), Point2D(388, 157), Point2D(472, 199), Point2D(850, 598), Point2D(787, 897), Point2D(110, 927))
matplotlib.pyplot.Polygon(np.array(list([i.x,i.y] for i in g.vertices)) )
hxy = np.array(list([i.x,i.y] for i in g.vertices))
とPoint2D(x,y) から (x,y) を取り出す必要がある。
つまり
g = Polygon(Point2D(94, 31), Point2D(388, 157), Point2D(472, 199), Point2D(850, 598), Point2D(787, 897), Point2D(110, 927))
matplotlib.pyplot.Polygon(np.array(list([i.x,i.y] for i in g.vertices)) )
■ このスレッドは過去ログ倉庫に格納されています
