質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

839閲覧

matplotlibを使ったアニメーションでグラフの間を塗りつぶす方法

kujiraryo

総合スコア9

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/06/26 16:28

基本的な質問になってしまい申し訳ありません。
python3とipython notebookを使っています。
例えば、matplotlibで下のようなsin波のアニメーションを作成したときに、
sin波とx軸の間を塗りつぶしたい場合はどのようにすればよろしいのでしょうか。

python

1import numpy as np 2import matplotlib.pyplot as plt 3import matplotlib.animation as animation 4%matplotlib nbagg 5 6fig = plt.figure() 7x = np.arange(0, 10, 0.1) 8 9ims = [] 10for a in range(10): 11 y = np.sin(x - a) 12 line, = plt.plot(x, y,"r") 13 ims.append([line]) 14 15ani = animation.ArtistAnimation(fig, ims) 16ani.save('sin.gif', writer="imagemagick")

イメージ説明

目標としては下の画像がアニメーションとして流れるようにしたいです。
イメージ説明

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

python

1import numpy as np 2import matplotlib.pyplot as plt 3import matplotlib.animation as animation 4#%matplotlib nbagg 5 6fig = plt.figure() 7x = np.arange(0, 10, 0.1) 8zeros = np.zeros(x.shape) 9ims = [] 10for a in range(10): 11 y = np.sin(x - a) 12 #line, = plt.plot(x, y,"r") 13 line = plt.fill_between(x,y,facecolor="r") 14 ims.append([line]) 15 16ani = animation.ArtistAnimation(fig, ims) 17ani.save('sin.gif', writer="imagemagick") 18#ani.save('sin.html', writer="imagemagick") 19plt.show()

上記のコードでアニメーションとして動きました.
ただ保存時,拡張子が.gifだとエラーが出たため,コメントアウトしている拡張子が.htmlの方で保存しました.

投稿2019/10/07 01:40

NR4200

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

この辺が役に立つでしょうか。

matplotlibで領域の図示 - 気ままに宙をみる

アニメは確認するのが手間なので、静止画ですが、こんな感じ。質問文のコードで、forの中をこんな感じにしていけば良さそうです。

python

1import numpy as np 2import matplotlib.pyplot as plt 3 4x = np.arange(0,10,0.01) 5y = np.sin(x) 6zeros = np.zeros(x.shape) 7plt.plot(x, y, c="r") # 線のぶんだけ微妙に見た目が変わる。なくても基本的には出るが、色を変えてエッジを強調したりするのには使える 8plt.fill_between(x,y,zeros,facecolor="r") 9plt.show()

イメージ説明

投稿2018/06/26 16:47

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問