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

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

ただいまの
回答率

90.76%

  • Matplotlib

    254questions

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

matplotlib contourマップの値の制限とanimation

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 761

simasimaa

score 30

import numpy as np
import matplotlib.pyplot as plt

E=np.zeros((10,10))
for i in range(1,10,1):
    for j in range(1,10,1):
        E[i][j]=i/j

fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.imshow(E, interpolation='none')
fig.colorbar(cax)
plt.show()


コンターマップを連続して表示させ、波が減衰していく様子を作りたいのですがコンターマップ上限下限のせいげんの仕方がわかりません。
コンターマップの数字を変更して表示させたいです。この場合だとカラーバーのmaxを例えば―1から15で表示させたいです。どうしたらいいでしょうか。

また、コンターマップでアニメーションを作るにはどうすればいいでしょうか。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

こんな感じでしょうか。
質問に挙げておられますコードを少し改変してみました。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

def data(count):
    E = np.zeros((10,10))
    for i in range(1,10,1):
        for j in range(1,10,1):
            E[i][j]=i/j + count*0.5
    return E


fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.imshow(data(0), interpolation='none', vmin=0, vmax=10, animated=True)
fig.colorbar(cax)

def animate(i):
    cax.set_array(data(i))
    return cax,

ani = FuncAnimation(fig, animate, frames=20, interval=100, blit=True)
plt.show()

変更点としては

  • データ生成部を関数化 (引数countによりアニメーション対応)
  • 上限・下限の指定は imshow() の引数にて vmin,vmax を指定
  • アニメーション対応
  1. imshow() の引数に animated=True 追加
  2. animate()関数を追加しカウンター値でimageを書き換える処理を記述
  3. FuncAnimation()関数を呼び出し、animate関数を指定

です。

現状では frames=20 を指定しているのでカウンター値は 0~19 の範囲でアニメーションします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/06 10:41

    非常に助かりました。
    matplolibについて勉強するにはなにがいいんでしょうか。英語のチュートリアルでしょうか。

    キャンセル

  • 2017/10/06 13:07 編集

    個人的には gallery
    https://matplotlib.org/gallery.html
    を眺めて、気になるものがあったらソースコード読む&テストコード書く
    くらいですかね。あとは必用に応じてドキュメント読むくらいです。

    キャンセル

  • 2017/10/06 15:44

    ありがとうございます。勉強します。

    キャンセル

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

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    matplotlibのplt.draw()を使ってリアルタイムで画像の描画をしたいのですがディスプレ...

    matplotlibで白黒反転するアニメーションを作りたいのですが、下のプログラムを実行してもディスプレイに何も表示されません 下のプログラムをどのように変えたら良いのでしょうか?

  • 解決済

    matplotlib.pyplot.scatter で軸の値を変更

    前提・実現したいこと 現在、pythonでmatplotlib.pyplot.scatterを用いて散布図を書こうとしています。 そのときに、軸の値を変更する方法を知りたいです。

  • 解決済

    pythonの図示 matpotlib

    pythonで四角形が格子状に区切られそれぞれの点に数字が振られています。それをコンターマップのように(ただし、等高線はいらない)図示したいのですがどのように書けばよいでしょうか

  • 解決済

    クラスタ毎の色変更ができません

    前提・実現したいこと クラスタリングの勉強をしています. scikit-learnでクラスタリングしようと思っています. 下記の2つの記事を参考にさせていただいています. こちらの

  • 解決済

    Python matplotlib 図の保存について

    本来、matplotlibで図を保存する場合は以下のようになるのですが、 以下のように保存することは可能でしょうか? (グラフの部分だけ) また、matplotlibで

  • 解決済

    行列を2次元プロットした際の軸の値を変更したい

    行列を2次元プロットする際には以下のURLのようにmatshow関数を利用するのが良いですが、軸の値は自動で決められてしまいます。 例えば以下のURLでは縦軸が[0, 14]の範囲

  • 解決済

    等高線のアニメーション作成について

    Jupyter Notebook上でMatplotlibのアニメーション機能を使い等高線のアニメーションを作成したいのですが上手くいきません. from numpy impor

  • 解決済

    matplotlibの使い方について

    matplotlibで辞書型を使って、棒グラフを作る方法が分かりません。 ご教授いただければ幸いです。

同じタグがついた質問を見る

  • Matplotlib

    254questions

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