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/
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)) )
245デフォルトの名無しさん
2019/05/27(月) 14:14:45.58ID:eCbLD3a7 うそはいかん
うちでは
ax.add_patch(matplotlib.pyplot.Polygon(g.vertices))
で動いてる
うちでは
ax.add_patch(matplotlib.pyplot.Polygon(g.vertices))
で動いてる
246デフォルトの名無しさん
2019/05/30(木) 09:30:54.81ID:+xWYr2/c >>245 ごめんごめん、今のバージョンと古いバージョンの両方を使ってて、古い方で通らなかったから通らないものとして作ってた。
これで行けると色んな場面で楽になるな。
これで行けると色んな場面で楽になるな。
247デフォルトの名無しさん
2019/05/30(木) 13:10:41.17ID:Ec3P7Zkh Mathematica Walfram|Alpha engine オプソなら無料に
https://forest.watch.impress.co.jp/docs/news/1186454.html
https://www.wolfram.com/engine/
https://forest.watch.impress.co.jp/docs/news/1186454.html
https://www.wolfram.com/engine/
248デフォルトの名無しさん
2019/06/08(土) 17:05:27.12ID:e9TBdBJ9 初心者で申し訳ないのですが、ここにいる天才達に質問です
マットプロットリブでリアルタイムの棒グラフの作成って可能ですか?
マットプロットリブでリアルタイムの棒グラフの作成って可能ですか?
249デフォルトの名無しさん
2019/06/08(土) 17:27:21.35ID:C/YlT49t OK
250デフォルトの名無しさん
2019/06/15(土) 16:48:07.34ID:aVo2U987 matplotlibでリアルタイムはクソ遅いので、用途次第だと思う
251デフォルトの名無しさん
2019/06/15(土) 17:49:04.18ID:NPtNfhdj Matplotlib&Seaborn実装ハンドブック
4798055433
4798055433
252デフォルトの名無しさん
2019/06/17(月) 11:58:06.21ID:hKpTfRM+253デフォルトの名無しさん
2019/06/17(月) 12:01:09.95ID:hKpTfRM+ https://inagoflyer.appspot.com/btcmac
↑このようなものを自分なりにもっと見やすくわかりやすく作りたいのですがおすすめってどのようなものですか?教えていただけると助かります。
↑このようなものを自分なりにもっと見やすくわかりやすく作りたいのですがおすすめってどのようなものですか?教えていただけると助かります。
254デフォルトの名無しさん
2019/06/17(月) 12:07:53.67ID:D4rpPP9R 特定用途に特化したものなら
自分で描いた方が速い
自分で描いた方が速い
255デフォルトの名無しさん
2019/06/17(月) 12:24:46.31ID:hKpTfRM+256デフォルトの名無しさん
2019/06/21(金) 12:19:21.19ID:/W/rELqI >>255 自分のPCで良いだろ。 他人に常時見せたいならサーバを借りる。
257デフォルトの名無しさん
2019/08/17(土) 00:03:58.94ID:Ss8Q0izn 金がかかる!(´・ω・`)
258デフォルトの名無しさん
2020/01/19(日) 09:11:27.71ID:uiB9cWtd ボタンで画面を切り替えてグラフ表示したいのですが、画面1はグラフが1つ、画面2はグラフが2つあります。下のようにやってみましたが、グラフが重なったりWarningが出たりしてうまくいきません。どのようにするとよいでしょうか?
import numpy as np
import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
def b1():
plt.cla()
ax=fig.add_subplot(111)
x=np.arange(0,10,0.1)
y=np.sin(x)
ax.plot(x,y)
plt.show()
def b2():
plt.cla()
ax1=fig.add_subplot(211)
ax2=fig.add_subplot(212)
x=np.arange(0,20,0.1)
y=np.sin(x**2)
y2=np.sin(np.sqrt(x))*2
ax1.plot(x,y)
ax2.plot(x,y2)
plt.show()
root=tk.Tk()
btn1=tk.Button(root,text='1',command=b1)
btn2=tk.Button(root,text='2',command=b2)
btn1.grid(column=0,row=0)
btn2.grid(column=1,row=0)
fig=plt.figure(figsize=(8,4))
root.mainloop()
import numpy as np
import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
def b1():
plt.cla()
ax=fig.add_subplot(111)
x=np.arange(0,10,0.1)
y=np.sin(x)
ax.plot(x,y)
plt.show()
def b2():
plt.cla()
ax1=fig.add_subplot(211)
ax2=fig.add_subplot(212)
x=np.arange(0,20,0.1)
y=np.sin(x**2)
y2=np.sin(np.sqrt(x))*2
ax1.plot(x,y)
ax2.plot(x,y2)
plt.show()
root=tk.Tk()
btn1=tk.Button(root,text='1',command=b1)
btn2=tk.Button(root,text='2',command=b2)
btn1.grid(column=0,row=0)
btn2.grid(column=1,row=0)
fig=plt.figure(figsize=(8,4))
root.mainloop()
259デフォルトの名無しさん
2020/01/19(日) 13:14:35.47ID:ehZNNwbS plt.show() もループするから
root.mainloop() と相性悪いんじゃね
root.mainloop() と相性悪いんじゃね
260デフォルトの名無しさん
2020/01/19(日) 13:22:48.94ID:ehZNNwbS あと fig もグローバルになってるから
各ボタンで重なる可能性はあるので
根本的に描き直す必要があるな
各ボタンで重なる可能性はあるので
根本的に描き直す必要があるな
261デフォルトの名無しさん
2020/01/19(日) 13:38:03.89ID:ehZNNwbS 警告出るけど少しはマシかも知れん
https://pastebin.com/nB4bpTF1
https://pastebin.com/nB4bpTF1
262デフォルトの名無しさん
2020/01/19(日) 13:44:10.05ID:ehZNNwbS263デフォルトの名無しさん
2020/01/19(日) 13:48:20.78ID:ehZNNwbS264デフォルトの名無しさん
2020/01/19(日) 18:02:25.00ID:uiB9cWtd >>259-263
ソースまで貼っていただいてありがとうございます。
まさにこれがやりたかったんです〜。
show()じゃなくてcanvas.draw_idle()ってのを使うんですか。
pauseは消えるまで次の描画を待たないといけないということでしょうか。
(並列処理している?)
やっばりwebの見よう見まねじゃなくて体系的に学ばないといけませんね。
ソースまで貼っていただいてありがとうございます。
まさにこれがやりたかったんです〜。
show()じゃなくてcanvas.draw_idle()ってのを使うんですか。
pauseは消えるまで次の描画を待たないといけないということでしょうか。
(並列処理している?)
やっばりwebの見よう見まねじゃなくて体系的に学ばないといけませんね。
■ このスレッドは過去ログ倉庫に格納されています
