🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Matplotlib

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

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

Q&A

解決済

1回答

1298閲覧

matplotlibでの海流図の描画について

anemonebreak

総合スコア5

Matplotlib

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

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

0グッド

0クリップ

投稿2019/10/17 03:03

前提・実現したいこと

python上で、海流のシミュレーションをして、matplotlibにて描画したいと思っています。
具体的には、海上に浮かぶ氷山の動きを時間とともに描画したいと思っています。

私はpythonどころかプログラミング自体が初心者の状態です。
正直なにから手を付ければいいのかわかりません。

githubで海流の動きのプログラムを探してみましたが、参考になりそうなものがなくお手上げ状態です。
初心な質問で申し訳ありませんが、コード自体の作成法、matplotlibでの描画ツールは何をつかうのが相応しいのか等、これからなにをすればいいのかご教授できませんでしょうか。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

海流のシミュレーションの結果としてどのような形式でデータが得られるのでしょうか。
得られるデータの形式によって、適した可視化方法 (グラフの種類) も変わってくるのでそこをまず検討する必要があります。

手順としては次のようになるのではないでしょうか。

  1. 海流をシミュレーションするモデル (数式) を作成
  2. シミュレーションを実行するプログラムを作成する。(数値計算なので、numpy を使用)
  3. 計算結果を matplotlib で可視化する。

具体的な方法については「海流のシミュレーションするモデル」がわからないため、申し上げられません。

例えば、matplotlib では以下のようにベクトル図を作成することができます。

Streamplot — Matplotlib 3.1.1 documentation

python

1import numpy as np 2import matplotlib.pyplot as plt 3 4Y, X = np.mgrid[-3:3:100j, -3:3:100j] 5U = -1 - X ** 2 + Y 6V = 1 + X - Y ** 2 7 8fig, ax = plt.subplots() 9ax.set_aspect("equal") 10ax.streamplot(X, Y, U, V, linewidth=2) 11 12plt.show()

投稿2019/10/17 03:26

tiitoi

総合スコア21956

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

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

anemonebreak

2019/10/21 03:15

モデル、というものがいまいち分かっておらず、抽象的な説明になります。 大型の船舶と大質量の氷山の衝突をシミュレーションし、matplotlibで描画したいと思っています。映画タイタニックのようなものを想像していただいて結構です。 正確には衝突までの海流上の二点の動きを物理的にシミュレーションしたいと思っています。 また、質問になるのですが、このベクトル図からアニメーションとして描画することは可能でしょうか、 説明も曖昧で申し訳ありません。
tiitoi

2019/10/21 04:23 編集

> このベクトル図からアニメーションとして描画することは可能でしょうか、 回答のコードはアニメーションではありませんが、matplotlib は各種類のグラフは全部アニメーションにすることもできます。 http://pynote.hatenablog.com/entry/matplotlib-animation 動く点 (氷山) が1つならアニメーションでなく折れ線グラフでもよいと思います。 > モデル、というものがいまいち分かっておらず、抽象的な説明になります。 「海流の動きを物理的にシミュレーションしたい」とのことなので、なんらかの数式で表されるわけですよね。それをモデルといっています。 どのような数式で表されるのかはプログラミングの範疇外の話なので、関連する書籍や論文を読んで理解しておく必要があります。 プログラミングが関係するのはその数式で実際に計算を行うところからになります。 Python でやるのであれば、計算は numpy、描画は matplotlib を使えばよいでしょう。 まずは数式が用意できないとプログラミングする段階にいけません。
anemonebreak

2019/10/22 08:20

丁寧にありがとうございます。 動く点(氷山)の海流運動方程式自分でを作ってからプログラミングを始める、ということですね。 非常に参考になりました。本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問