Matplotlib でグラフプログラミング【Python】
■ このスレッドは過去ログ倉庫に格納されています
>>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)) ) うそはいかん
うちでは
ax.add_patch(matplotlib.pyplot.Polygon(g.vertices))
で動いてる >>245 ごめんごめん、今のバージョンと古いバージョンの両方を使ってて、古い方で通らなかったから通らないものとして作ってた。
これで行けると色んな場面で楽になるな。 初心者で申し訳ないのですが、ここにいる天才達に質問です
マットプロットリブでリアルタイムの棒グラフの作成って可能ですか? matplotlibでリアルタイムはクソ遅いので、用途次第だと思う Matplotlib&Seaborn実装ハンドブック
4798055433 >>250
そうなんですね。遅いのですか・・・
それならリアルタイムグラフを作成するのにおすすめの物ってなんですか? https://inagoflyer.appspot.com/btcmac
↑このようなものを自分なりにもっと見やすくわかりやすく作りたいのですがおすすめってどのようなものですか?教えていただけると助かります。 >>254
なるほど。
プログラム初心者なんで教えてほしいのですが、自分でコードを書いてからどこに作成したコードを張り付ければ
このようなグラフが出てくるようになるのですか? >>255 自分のPCで良いだろ。 他人に常時見せたいならサーバを借りる。 ボタンで画面を切り替えてグラフ表示したいのですが、画面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() plt.show() もループするから
root.mainloop() と相性悪いんじゃね あと fig もグローバルになってるから
各ボタンで重なる可能性はあるので
根本的に描き直す必要があるな 同じ場所に上書きで良いならこっちか
https://pastebin.com/Bxd3C1hF
plt.cla() -> plt.clf() に注意 >>259-263
ソースまで貼っていただいてありがとうございます。
まさにこれがやりたかったんです〜。
show()じゃなくてcanvas.draw_idle()ってのを使うんですか。
pauseは消えるまで次の描画を待たないといけないということでしょうか。
(並列処理している?)
やっばりwebの見よう見まねじゃなくて体系的に学ばないといけませんね。 pauseの行を消すと何も表示されなくなるよ
そもそもなんでpauseって名前になってるのか判らんが
むしろpauseは待つんじゃなくてshowとは違って一瞬だけ書いて消して
次の処理をやってくれる感じ axvline で書き込んだ垂直線を
あとから消す(クリア)することはできますか? 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なのですが、
リストを使ってハッチの指定はできないのでしょうか? >>270
以前Qiitaで色をlist形式で表示してたのを真似してグラフ作ってたので、
ハッチも同じくlistでいけるかと思ったのですが・・・
一つずつ指定するしかないのかな seabornなどの戻り値でaxesだけいくつか受け取った時、画像を保存するのに一番早い方法は何でしょうか?現状は
fig,ax=plt.subplots()
として、axに戻り値を代入してfig.savefigしています >>15
実測したらmatplotlibは18倍くらい掛かった
生成するグラフが多いと問題ある ■ このスレッドは過去ログ倉庫に格納されています