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/
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ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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