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/
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の見よう見まねじゃなくて体系的に学ばないといけませんね。
265デフォルトの名無しさん
2020/01/19(日) 18:09:11.95ID:ehZNNwbS pauseの行を消すと何も表示されなくなるよ
そもそもなんでpauseって名前になってるのか判らんが
むしろpauseは待つんじゃなくてshowとは違って一瞬だけ書いて消して
次の処理をやってくれる感じ
そもそもなんでpauseって名前になってるのか判らんが
むしろpauseは待つんじゃなくてshowとは違って一瞬だけ書いて消して
次の処理をやってくれる感じ
266デフォルトの名無しさん
2020/05/13(水) 17:50:12.43ID:LtaTjraG axvline で書き込んだ垂直線を
あとから消す(クリア)することはできますか?
あとから消す(クリア)することはできますか?
267デフォルトの名無しさん
2020/05/13(水) 17:55:27.22ID:oWyvBIrO できますよ
268デフォルトの名無しさん
2020/05/13(水) 18:05:11.92ID:ffMOD4vy269デフォルトの名無しさん
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なのですが、
リストを使ってハッチの指定はできないのでしょうか?
hatch_list = ['/', '//', '/', '//', '/']
plt.bar(left, height, color=color_list, hatch=hatch_list, width=width,
tick_label=labels, align='center')
上のコードでハッチが表示されません
最後の一行で直接hatch='/'と指定すればOKなのですが、
リストを使ってハッチの指定はできないのでしょうか?
270デフォルトの名無しさん
2021/02/28(日) 19:39:27.37ID:KhV56l2K >>269
何参考にしたん?
何参考にしたん?
271デフォルトの名無しさん
2021/02/28(日) 20:05:29.10ID:mnh+qcDH272デフォルトの名無しさん
2023/01/09(月) 22:49:19.85ID:oQuRlGBk seabornなどの戻り値でaxesだけいくつか受け取った時、画像を保存するのに一番早い方法は何でしょうか?現状は
fig,ax=plt.subplots()
として、axに戻り値を代入してfig.savefigしています
fig,ax=plt.subplots()
として、axに戻り値を代入してfig.savefigしています
273デフォルトの名無しさん
2023/03/13(月) 10:21:06.78ID:kyo182dJ274デフォルトの名無しさん
2023/03/16(木) 18:17:15.77ID:YlN3ndGZ 余所でやってください
275デフォルトの名無しさん
2023/09/24(日) 14:44:11.65ID:0LC+gfeq なんでやねん、わからん
■ このスレッドは過去ログ倉庫に格納されています
