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

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

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

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

Q&A

解決済

2回答

1967閲覧

pythonのプログラムで作った動画を再生できない

hundred

総合スコア2

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

0グッド

1クリップ

投稿2021/10/24 12:38

編集2021/10/27 00:15

pythonのプログラムで作った動画が再生されない

橋の地震波に対する減衰振動の様子を示すグラフを作成したのですが、完成した動画の再生ができません。どのような点を直せばいいか教えてほしいです。下のような動画ができ、本当は、振動するのですが再生ボタンを押しても動きませんでした。
イメージ説明

作成した動画が再生できない(エラーメッセージはありません。)

``

python

1import matplotlib.pyplot as plt 2 3m = 360000 #質量 4k = 57000000 #バネ定数 5c = 450000 #減衰定数 6dt = 0.01 7calsize = 500 8 9t = [0]*calsize 10osc = [0]*calsize 11t[0] = 0 12t[1] = dt 13osc[0] = 1 14osc[1] = 1 15for i in range(1,calsize-1): 16 t[i+1]=t[i]+dt 17 osc[i+1]=(2 - c/m*dt - k/m*dt**2)*osc[i] + (c/m*dt - 1)*osc[i-1] 18 19 20l=4 21import numpy as np 22import matplotlib.pyplot as plt 23import matplotlib.animation as animation 24from IPython.display import HTML 25fig=plt.figure(figsize=[5,5]) 26plt.xlim(-1,1) 27plt.ylim(0,6) 28 29ims = [] 30 31for i in range(len(osc)): 32 a = osc[i] 33 b = np.sqrt(l**2-osc[i]**2) 34line = plt.plot([0, a], [0, b], "-",linewidth=1, color="black") 35point = plt.plot(a, b, ".", markersize=10, color="red") 36im = line + point 37ims.append(im) 38ani = animation.ArtistAnimation(fig, ims, interval=50) 39plt.close() 40ani.save("animation.gif", writer="pillow") 41HTML(ani.to_jshtml())
### 試したこと プログラムを何回か作り直した ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

meg_

2021/10/24 12:57

> 完成した動画の再生ができません どのような方法で動画の再生を試みて、どのような結果になったのですか?
jbpb0

2021/10/24 21:26

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください または、 https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif を見て、そのようにしてみてください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
guest

回答2

0

ベストアンサー

そのプログラムはJupyter notebookで実行することを前提としているので、Jupyter notebookで実行してください。
通常のターミナルで実行する場合は、plt.close()を削除して、HTML(ani.to_jshtml())plt.show()に変更してください。

追記:
すみません、Google Colaboratoryでの実行でしたね。Google Colaboratoryで試してみましたが、ちゃんと動画が表示されました。

投稿2021/10/24 13:13

編集2021/10/24 13:19
etherbeg

総合スコア1195

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

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

0

python

1for i in range(len(osc)): 2 a = osc[i] 3 b = np.sqrt(l**2-osc[i]**2) 4line = plt.plot([0, a], [0, b], "-",linewidth=1, color="black") 5point = plt.plot(a, b, ".", markersize=10, color="red") 6im = line + point 7ims.append(im)

↓ インデントを修正

python

1for i in range(len(osc)): 2 a = osc[i] 3 b = np.sqrt(l**2-osc[i]**2) 4 line = plt.plot([0, a], [0, b], "-",linewidth=1, color="black") 5 point = plt.plot(a, b, ".", markersize=10, color="red") 6 im = line + point 7 ims.append(im)

で、動きました

投稿2021/10/27 00:26

jbpb0

総合スコア7651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問