X



Matplotlib でグラフプログラミング【Python】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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/
0225デフォルトの名無しさん
垢版 |
2016/10/11(火) 13:31:18.69ID:QeFd4z39
割とマジでレスするけど
>>221-222 が判らなかったのはともかく
それが解決してるのに >>223-224 が判らないっていうのは
相当知能に問題があるぞ
自分でできないなら向いてない
あきらめろ
0226デフォルトの名無しさん
垢版 |
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
こちらを組み合わせながら行っても上手くいかず
入力待ちの方法が思い浮かばなかったために質問させていただいております
もしよろしければもう少しお付き合いください
0227デフォルトの名無しさん
垢版 |
2016/10/12(水) 10:22:57.21ID:G/hcjkA/
>>226のものです
>>223について不器用な感じではありますがカウンターを用いて解決しました
ご迷惑をおかけしましてすみません
0229デフォルトの名無しさん
垢版 |
2017/03/11(土) 11:10:15.21ID:qCTmGWaI
pandas使ったらさあ、ちょっと前なのにパラメータがrows, colsからindexとcolumnに変わってたりと
大して意味のない気まぐれな変更多くて修正めんどくさくて大変だった
いったん決めたインターフェースは簡単に変えるなよ
0231デフォルトの名無しさん
垢版 |
2017/05/05(金) 14:10:16.42ID:hoK7VIFg
すみません、
テラタームでログインして、サーバ上でPythonを触っているのですが、

その場合、Matplotlibで作成したグラフはどのようにしたら表示できますか?
0234デフォルトの名無しさん
垢版 |
2017/07/20(木) 19:10:48.26ID:ZZQl41L2
ssh
0235デフォルトの名無しさん
垢版 |
2017/11/10(金) 19:10:16.21ID:81bW6/qw
一番簡単なのはjupyter notebook使うことだね。
0236デフォルトの名無しさん
垢版 |
2018/03/31(土) 19:51:41.75ID:RRMYNfyR
3D版のScatterでvmax指定が効かないな…
zticksも存在しないし
透明の点をプロットして拡げるしかないのか
0237デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:58:38.64ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

UWPF3
0238デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:40:39.11ID:RfoszcD2
XAO
0240デフォルトの名無しさん
垢版 |
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
0241デフォルトの名無しさん
垢版 |
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))))
0242デフォルトの名無しさん
垢版 |
2019/05/24(金) 15:20:24.68ID:MR3FxfYE
>>241 ありがとう。 なんとかかんとか自力でゴリゴリ変換してみてた。 参考にさせてもらいます。
0243デフォルトの名無しさん
垢版 |
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)

これでええわ
0244デフォルトの名無しさん
垢版 |
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)) )
0245デフォルトの名無しさん
垢版 |
2019/05/27(月) 14:14:45.58ID:eCbLD3a7
うそはいかん
うちでは
ax.add_patch(matplotlib.pyplot.Polygon(g.vertices))
で動いてる
0246デフォルトの名無しさん
垢版 |
2019/05/30(木) 09:30:54.81ID:+xWYr2/c
>>245 ごめんごめん、今のバージョンと古いバージョンの両方を使ってて、古い方で通らなかったから通らないものとして作ってた。
これで行けると色んな場面で楽になるな。
0248デフォルトの名無しさん
垢版 |
2019/06/08(土) 17:05:27.12ID:e9TBdBJ9
初心者で申し訳ないのですが、ここにいる天才達に質問です
マットプロットリブでリアルタイムの棒グラフの作成って可能ですか?
0249デフォルトの名無しさん
垢版 |
2019/06/08(土) 17:27:21.35ID:C/YlT49t
OK
0251デフォルトの名無しさん
垢版 |
2019/06/15(土) 17:49:04.18ID:NPtNfhdj
Matplotlib&Seaborn実装ハンドブック
4798055433
0252デフォルトの名無しさん
垢版 |
2019/06/17(月) 11:58:06.21ID:hKpTfRM+
>>250
そうなんですね。遅いのですか・・・
それならリアルタイムグラフを作成するのにおすすめの物ってなんですか?
0253デフォルトの名無しさん
垢版 |
2019/06/17(月) 12:01:09.95ID:hKpTfRM+
https://inagoflyer.appspot.com/btcmac
↑このようなものを自分なりにもっと見やすくわかりやすく作りたいのですがおすすめってどのようなものですか?教えていただけると助かります。
0254デフォルトの名無しさん
垢版 |
2019/06/17(月) 12:07:53.67ID:D4rpPP9R
特定用途に特化したものなら
自分で描いた方が速い
0255デフォルトの名無しさん
垢版 |
2019/06/17(月) 12:24:46.31ID:hKpTfRM+
>>254
なるほど。
プログラム初心者なんで教えてほしいのですが、自分でコードを書いてからどこに作成したコードを張り付ければ
このようなグラフが出てくるようになるのですか?
0258デフォルトの名無しさん
垢版 |
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()
0259デフォルトの名無しさん
垢版 |
2020/01/19(日) 13:14:35.47ID:ehZNNwbS
plt.show() もループするから
root.mainloop() と相性悪いんじゃね
0260デフォルトの名無しさん
垢版 |
2020/01/19(日) 13:22:48.94ID:ehZNNwbS
あと fig もグローバルになってるから
各ボタンで重なる可能性はあるので
根本的に描き直す必要があるな
0262デフォルトの名無しさん
垢版 |
2020/01/19(日) 13:44:10.05ID:ehZNNwbS
同じ場所に上書きで良いならこっちか
https://pastebin.com/Bxd3C1hF
plt.cla() -> plt.clf() に注意
0264デフォルトの名無しさん
垢版 |
2020/01/19(日) 18:02:25.00ID:uiB9cWtd
>>259-263
ソースまで貼っていただいてありがとうございます。
まさにこれがやりたかったんです〜。
show()じゃなくてcanvas.draw_idle()ってのを使うんですか。
pauseは消えるまで次の描画を待たないといけないということでしょうか。
(並列処理している?)
やっばりwebの見よう見まねじゃなくて体系的に学ばないといけませんね。
0265デフォルトの名無しさん
垢版 |
2020/01/19(日) 18:09:11.95ID:ehZNNwbS
pauseの行を消すと何も表示されなくなるよ
そもそもなんでpauseって名前になってるのか判らんが
むしろpauseは待つんじゃなくてshowとは違って一瞬だけ書いて消して
次の処理をやってくれる感じ
0266デフォルトの名無しさん
垢版 |
2020/05/13(水) 17:50:12.43ID:LtaTjraG
axvline で書き込んだ垂直線を
あとから消す(クリア)することはできますか?
0267デフォルトの名無しさん
垢版 |
2020/05/13(水) 17:55:27.22ID:oWyvBIrO
できますよ
0269デフォルトの名無しさん
垢版 |
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なのですが、
リストを使ってハッチの指定はできないのでしょうか?
0271デフォルトの名無しさん
垢版 |
2021/02/28(日) 20:05:29.10ID:mnh+qcDH
>>270
以前Qiitaで色をlist形式で表示してたのを真似してグラフ作ってたので、
ハッチも同じくlistでいけるかと思ったのですが・・・

一つずつ指定するしかないのかな
0272デフォルトの名無しさん
垢版 |
2023/01/09(月) 22:49:19.85ID:oQuRlGBk
seabornなどの戻り値でaxesだけいくつか受け取った時、画像を保存するのに一番早い方法は何でしょうか?現状は
fig,ax=plt.subplots()
として、axに戻り値を代入してfig.savefigしています
■ このスレッドは過去ログ倉庫に格納されています

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