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/
2013/12/04(水) 20:54:41.69
node.js & R
node.js & octave
peg.js, D3.js
2014/02/02(日) 13:37:53.34
こんにちは。
凡例の文字列に日本語フォントを使いたいのですが、うまくいきません。
例があればご教授いただけないでしょうか。
2014/02/04(火) 00:32:06.20
フォントに日本語を表示できる物に変えれば良かったはず。
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タブレットでも使える

・セル内の文字選択がマウスだけではうまくいかないことがある?
マウスとキーボードの両方必要
ソフトキーボードでは簡単な編集はできるけど文字選択できないの
マウスとソフトキーボードでもたぶん文字選択できないの
2014/07/23(水) 14:58:19.39ID:pGSYFJcR
>>144
これありますか?パターンで塗りつぶしができれば白黒印刷に便利なのですが、ギャラリーにも見あたらないし、検索してもこのレスぐらいしか引っかからないので半分諦めていますが…
2014/07/24(木) 09:36:48.44ID:0egdwMYx
matplotlib fill hatching で画像検索
やり方わかったら教えてね ;-)
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)
2014/09/27(土) 22:40:08.06ID:W7xxfy9p
Ruby3には静的な型を導入するかもだって
理由は最近生まれたスクリプト言語が静的型を持ってるからって・・なんじゃその理由

後方互換なんて関係ねぇーそんなの関係ねぇー、おっバッッカーッ
2014/09/27(土) 22:40:57.75ID:W7xxfy9p
あ、スレまちがえた、、失礼w
2015/08/13(木) 13:55:40.44ID:LC3PBYmK
このスレPyQtGraphの話ってしてもいいのかな
187デフォルトの名無しさん
垢版 |
2015/08/13(木) 13:56:12.96ID:LC3PBYmK
あげ
2015/10/08(木) 18:06:00.97ID:pEnalajB
オライリーのある本にmatplotlibのbasemapは
shapefile形式の地図を読み込んで描画できるって書いてあったんだけど
http://metro.teczno.com/#osaka-kyoto
ここの大阪の道路と電車の地図を読み込むことができない
2015/10/08(木) 18:37:55.20ID:pEnalajB
cythonにすれば静的型を扱える
190デフォルトの名無しさん
垢版 |
2015/10/30(金) 12:12:59.83ID:bGTI8z09
windowsだと途中で応答無くなるのなんとかならないかな
2015/11/30(月) 02:13:04.21ID:HuGRRAxn
パソコンによって微妙にグラフ出力(軸名の太さなど)が違うのはどうやれば対処できますか?
2015/11/30(月) 08:54:23.14ID:A2VxB4My
OSの違いではないでしょうか?
環境を書いて下さい。
2015/11/30(月) 22:17:26.96ID:xNC+/SUX
basemap
2015/12/08(火) 21:04:09.56ID:I8RIi9jS
>>192
同じOSでUSBとHDDに保存しているwinpythonにて実行しました。(どちらも同じバージョン)
すると、やはり軸タイトルが太字になっていたりします。(同じスクリプト)

OSの関係については、同じパソコンでも日によって先述の症状が出たりするのでわかりません
2016/02/26(金) 12:57:53.04ID:FYh5zmj6
matplotlib使って、リアルタイムに送られたデータを元にグラフ作成は可能でしょうか?
196デフォルトの名無しさん
垢版 |
2016/02/26(金) 14:29:31.34ID:VQGl6zaq
可能です
2016/02/26(金) 14:38:30.00ID:VQGl6zaq
ion
ioff
pause
draw
relim
198デフォルトの名無しさん
垢版 |
2016/02/26(金) 14:55:46.37ID:FYh5zmj6
>>196
有難うございます。
頑張ってみます。
親切にありがとう。
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
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をインストールしたのでしょうか。教えてください。
2016/04/23(土) 08:31:04.23ID:1uyTz51m
Anacondaで全部まとめてぶっこむのが楽よ
202デフォルトの名無しさん
垢版 |
2016/04/23(土) 12:11:30.63ID:qkM7UD7C
>>199
普通にインストール出来たけど
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が使えるようになります。
2016/04/23(土) 12:37:03.29ID:oAofrbJu
>>202
私も>>199でインストールできてimport scipyは通るのですが、import scipy.miscはエラーとなる状態でした。
Anacondaをインストールすることで、これも通るようになりました。
2016/04/23(土) 13:16:58.57ID:qkM7UD7C
>>> import scipy
>>> import scipy.misc

問題ないなー
2016/06/17(金) 11:15:19.99ID:l3PGNOtI
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でも試しましたが、ローソク足と移動平均線を出力すると、
右端と左端に縮まって表示されてしまいます。

どこかに参考になるサイトやソースがあれば教えていただきたいです。
長文で失礼しました。
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
ここのページのような感じで出力させたいです。
2016/07/16(土) 15:23:01.94ID:9Y22Kipm
期待されてるデータはこんな感じっぽい
index start close high low
2016/07/16(土) 15:24:59.58ID:9Y22Kipm
ああ違うな

期待されてるデータはこんな感じっぽい
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さんの書き込みがなければ、ググり方の発想すら出てこなかったので、
本当に助かりました。ありがとうございました。
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
何とかしてもとの白黒で正しく表示できないものでしょうか
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)))
(略)
215デフォルトの名無しさん
垢版 |
2016/09/30(金) 13:51:49.16ID:4mQfWuIk
>>214 のはネタだけど

im = np.array(image.open('jEgghPx.png'))
plt.imshow(im)
plt.gray()
plt.show()

でもイケる
2016/10/01(土) 13:59:29.48ID:tpKY3oHI
ありがとうございます。

>>214
キラーンとなりました
>>215
元のモノクロで表示されました

白黒表示目的は>>215で達成できたのですが、>>214が気になります
x=11の列、y=11の列の値を511倍してそれぞれ列サイズ(28)、行サイズ(28)で割るとなぜキラーンとなるのでしょうか?
しかも全体の色味も変わって見えます
2016/10/02(日) 13:38:37.38ID:GX41vvMR
im2 = misc.toimage(im, cmin=0, cmax=511)
plt.imshow(np.uint32(im2))

と比べてごらん
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)))
(略)
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)))
(略)
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()

サイトを参考に以上のように組んではいるのですが
ボタンを押した際ボタンの方の中央にプロットされてしまいます
これをキャンバスの方の中央にプロットするにはどのようにしたらよいでしょうか?

欲を言えばボタンを押した後に中央のキャンバス上でクリックした場所に赤い点を出したいです
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)
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)
(略)

#最初にクリックしたときだけ、どの場所クリックしても中央になるのは座標軸の方が変化するからっぽい。
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()
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)
225デフォルトの名無しさん
垢版 |
2016/10/11(火) 13:31:18.69ID:QeFd4z39
割とマジでレスするけど
>>221-222 が判らなかったのはともかく
それが解決してるのに >>223-224 が判らないっていうのは
相当知能に問題があるぞ
自分でできないなら向いてない
あきらめろ
226デフォルトの名無しさん
垢版 |
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
こちらを組み合わせながら行っても上手くいかず
入力待ちの方法が思い浮かばなかったために質問させていただいております
もしよろしければもう少しお付き合いください
227デフォルトの名無しさん
垢版 |
2016/10/12(水) 10:22:57.21ID:G/hcjkA/
>>226のものです
>>223について不器用な感じではありますがカウンターを用いて解決しました
ご迷惑をおかけしましてすみません
2016/10/14(金) 15:42:20.46ID:z5IC4QPv
グラフ描画機能は
matplotlibとRのggplot2は
どっちが優れてますか?
2017/03/11(土) 11:10:15.21ID:qCTmGWaI
pandas使ったらさあ、ちょっと前なのにパラメータがrows, colsからindexとcolumnに変わってたりと
大して意味のない気まぐれな変更多くて修正めんどくさくて大変だった
いったん決めたインターフェースは簡単に変えるなよ
2017/03/11(土) 11:37:03.12ID:JsoExgwj
>>229
2日越しのマルチ乙
2017/05/05(金) 14:10:16.42ID:hoK7VIFg
すみません、
テラタームでログインして、サーバ上でPythonを触っているのですが、

その場合、Matplotlibで作成したグラフはどのようにしたら表示できますか?
2017/05/05(金) 15:29:08.61ID:E/UcmmKD
sshでXのportforwardとかかな
2017/05/05(金) 15:34:23.95ID:hoK7VIFg
>>232
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も存在しないし
透明の点をプロットして拡げるしかないのか
237デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:58:38.64ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

UWPF3
238デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:40:39.11ID:RfoszcD2
XAO
2019/04/01(月) 18:19:51.64ID:zbbYcLmt
今は jupyter labやな
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
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))))
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)

これでええわ
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)) )
245デフォルトの名無しさん
垢版 |
2019/05/27(月) 14:14:45.58ID:eCbLD3a7
うそはいかん
うちでは
ax.add_patch(matplotlib.pyplot.Polygon(g.vertices))
で動いてる
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/
248デフォルトの名無しさん
垢版 |
2019/06/08(土) 17:05:27.12ID:e9TBdBJ9
初心者で申し訳ないのですが、ここにいる天才達に質問です
マットプロットリブでリアルタイムの棒グラフの作成って可能ですか?
249デフォルトの名無しさん
垢版 |
2019/06/08(土) 17:27:21.35ID:C/YlT49t
OK
2019/06/15(土) 16:48:07.34ID:aVo2U987
matplotlibでリアルタイムはクソ遅いので、用途次第だと思う
251デフォルトの名無しさん
垢版 |
2019/06/15(土) 17:49:04.18ID:NPtNfhdj
Matplotlib&Seaborn実装ハンドブック
4798055433
252デフォルトの名無しさん
垢版 |
2019/06/17(月) 11:58:06.21ID:hKpTfRM+
>>250
そうなんですね。遅いのですか・・・
それならリアルタイムグラフを作成するのにおすすめの物ってなんですか?
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+
>>254
なるほど。
プログラム初心者なんで教えてほしいのですが、自分でコードを書いてからどこに作成したコードを張り付ければ
このようなグラフが出てくるようになるのですか?
2019/06/21(金) 12:19:21.19ID:/W/rELqI
>>255 自分のPCで良いだろ。 他人に常時見せたいならサーバを借りる。
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()
259デフォルトの名無しさん
垢版 |
2020/01/19(日) 13:14:35.47ID:ehZNNwbS
plt.show() もループするから
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
262デフォルトの名無しさん
垢版 |
2020/01/19(日) 13:44:10.05ID:ehZNNwbS
同じ場所に上書きで良いならこっちか
https://pastebin.com/Bxd3C1hF
plt.cla() -> plt.clf() に注意
263デフォルトの名無しさん
垢版 |
2020/01/19(日) 13:48:20.78ID:ehZNNwbS
>>258 の本当にやりたかったことを忖度してみた
https://pastebin.com/9h94Q5GV
264デフォルトの名無しさん
垢版 |
2020/01/19(日) 18:02:25.00ID:uiB9cWtd
>>259-263
ソースまで貼っていただいてありがとうございます。
まさにこれがやりたかったんです〜。
show()じゃなくてcanvas.draw_idle()ってのを使うんですか。
pauseは消えるまで次の描画を待たないといけないということでしょうか。
(並列処理している?)
やっばりwebの見よう見まねじゃなくて体系的に学ばないといけませんね。
265デフォルトの名無しさん
垢版 |
2020/01/19(日) 18:09:11.95ID:ehZNNwbS
pauseの行を消すと何も表示されなくなるよ
そもそもなんでpauseって名前になってるのか判らんが
むしろpauseは待つんじゃなくてshowとは違って一瞬だけ書いて消して
次の処理をやってくれる感じ
2020/05/13(水) 17:50:12.43ID:LtaTjraG
axvline で書き込んだ垂直線を
あとから消す(クリア)することはできますか?
267デフォルトの名無しさん
垢版 |
2020/05/13(水) 17:55:27.22ID:oWyvBIrO
できますよ
2020/05/13(水) 18:05:11.92ID:ffMOD4vy
https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9
2021/02/28(日) 18:07:24.51ID:mnh+qcDH
color_list = ['darkblue', 'grey', 'darkred', 'darkred', 'darkred']
hatch_list = ['/', '//', '/', '//', '/']
plt.bar(left, height, color=color_list, hatch=hatch_list, width=width,
tick_label=labels, align='center')

上のコードでハッチが表示されません
最後の一行で直接hatch='/'と指定すればOKなのですが、
リストを使ってハッチの指定はできないのでしょうか?
2021/02/28(日) 19:39:27.37ID:KhV56l2K
>>269
何参考にしたん?
2021/02/28(日) 20:05:29.10ID:mnh+qcDH
>>270
以前Qiitaで色をlist形式で表示してたのを真似してグラフ作ってたので、
ハッチも同じくlistでいけるかと思ったのですが・・・

一つずつ指定するしかないのかな
272デフォルトの名無しさん
垢版 |
2023/01/09(月) 22:49:19.85ID:oQuRlGBk
seabornなどの戻り値でaxesだけいくつか受け取った時、画像を保存するのに一番早い方法は何でしょうか?現状は
fig,ax=plt.subplots()
として、axに戻り値を代入してfig.savefigしています
2023/03/13(月) 10:21:06.78ID:kyo182dJ
>>15
実測したらmatplotlibは18倍くらい掛かった
生成するグラフが多いと問題ある
2023/03/16(木) 18:17:15.77ID:YlN3ndGZ
余所でやってください
2023/09/24(日) 14:44:11.65ID:0LC+gfeq
なんでやねん、わからん
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況