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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1025閲覧

Pythonを用いたcolorのanimation作成(?)

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/14 09:39

###やりたいこと

Python

1import matplotlib.pyplot as plt 2import matplotlib.patches as pat 3 4fig = plt.figure(figsize=(5, 5)) 5ax = fig.add_subplot(111) 6 7rec = pat.Rectangle(xy = (0.4, 0.4), width = 0.2, height = 0.2, 8angle = 0, color = 'green') 9 10 11# Axesに正方形を追加 12ax.add_patch(rec)

上記のコードで作成した正方形のパッチの色を、

Python

1import numpy as np 2import math 3 4x = np.linspace(0, 2*np.pi, 201) 5y = np.sin(x) 6 7# カラーマップ 8cm = plt.cm.get_cmap('rainbow') 9 10fig = plt.figure(figsize=(12,4)) 11ax = fig.add_subplot(1, 1, 1) 12 13mappable = ax.scatter(x, y, c=y_1,vmin=-1, vmax=1, s=35, cmap=cm) 14 15# カラーバーを付加 16fig.colorbar(mappable, ax=ax) 17plt.show()

で作成した、sinのグラフの色に従って、時間変化させたいと考えています。
(sinの横軸を時間方向と考えている)

###現状(分からないこと)
さしあたって、matplotlib.animationをimportして、パッチのcolorをyの値と関連させようと思っているのですが、どうすれば良いのか分からない状態です。

詳しい方、ご教授をお願いいたします

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

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

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

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

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

guest

回答1

0

まずはカラーマップから色を作成します。
あとはアニメーションでRectangleの色を変えていきます。
参考:
Getting individual colors from a color map in matplotlib
Matplotlib animation, moving square

Python

1import matplotlib 2import matplotlib.pyplot as plt 3import matplotlib.patches as pat 4from matplotlib import animation 5import numpy as np 6 7x = np.linspace(0, 2*np.pi, 201) 8y = np.sin(x) 9 10# 値の範囲を0...1に正規化 11norm = matplotlib.colors.Normalize(vmin=np.min(y), vmax=np.max(y)) 12# カラーマップから色を作成 13cm = plt.cm.get_cmap('rainbow') 14colors = cm(norm(y)) 15 16fig = plt.figure(figsize=(5, 5)) 17ax = fig.add_subplot(111) 18 19rec = pat.Rectangle(xy = (0.4, 0.4), width = 0.2, height = 0.2, 20angle = 0, color = colors[0]) 21 22def init(): 23 ax.add_patch(rec) 24 return rec, 25 26def animate(i): 27 rec.set_color(colors[i]) 28 return rec, 29 30anim = animation.FuncAnimation(fig, animate, 31 init_func=init, 32 frames=len(colors), 33 interval=100) 34 35plt.show()

投稿2020/11/15 02:14

can110

総合スコア38266

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問