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

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

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

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

Q&A

0回答

3213閲覧

三次元ベクトルを図示できたのですが,それを逐次表示することはできないでしょうか?

708

総合スコア4

Python

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

0グッド

2クリップ

投稿2018/07/11 08:58

編集2018/07/27 07:09

前提・実現したいこと

pythonでcsvファイルを読み込んで複数の三次元ベクトルを図示してのですが
それを1つずつ逐次表示して,動画やGIFにすることはできないでしょうか?
また,図を回転させたいのですが回転している図はどうすればよいでしょうか
ご教授ください.

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

単純にこれを入れただけでは表示できないのでしょうか?
plt.pause(.01)

エラーメッセージ
TypeError: show() got an unexpected keyword argument 'block'

該当のソースコード

python

1import matplotlib.pyplot as plt 2from mpl_toolkits.mplot3d.axes3d import Axes3D 3import csv 4import numpy as np 5import pandas as pd 6import math 7%matplotlib notebook 8fig = plt.figure() 9ax = Axes3D(fig) 10#ax=fig.gca(projection='3d') 11#ax = fig.add_subplot(111, projection='3d') 12from pylab import * 13u=[] 14v=[] 15w=[] 16al =[] 17 18LX,LY,LZ = 1,1,1 19X,Y,Z= 0,0,0 20ax.set_xlim([-LX,LX]) 21ax.set_ylim([-LY,LY]) 22ax.set_zlim([-LZ,LZ]) 23ax.set_xlabel("x",fontsize=18) 24ax.set_ylabel("y",fontsize=18) 25ax.set_zlabel("z",fontsize=18) 26 27with open('saido.test01.csv', newline='') as f: 28 dataReader = csv.reader(f) 29 for row in dataReader: 30 u.append(row[0]) 31 v.append(row[1]) 32 w.append(row[2]) 33 a = np.array(row) 34 al.append(np.linalg.norm(a)) 35for i in range(0,80): 36 if i<=45: 37 ax.quiver(X,Y,Z,u[i],v[i],w[i],color = 'black',length = al[i],normalize = False) 38 39 # if 47<=i<49: 40 # ax.quiver(X,Y,Z,u[i],v[i],w[i],color = 'green',length = al[i],normalize = False) 41 42 # if 70<=i<80: 43 # ax.quiver(X,Y,Z,u[i],v[i],w[i],color = 'white',length = al[i],normalize = False) 44 45ax.scatter3D(X,Y,Z,"o",color = 'black') 46#ax.scatter(X, Y, Z, c='r', label='t = 0s') 47#ax.scatter(X, Y, Z, c='g', label='t = 0.45s') 48#legend(("Tanslation vector")) 49#plt.scatter(label="Transration vector") 50 51# 表示 52plt.show() 53plt.pause(.01) 54#plt.rcParams["font.size"] = 10

試したこと

plt.pause(.01)を入れたりしました

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

Anaconda3です

下記に変更しましたがエラーは変わらなかったです

表示

plt.pause(.01)


TypeError Traceback (most recent call last)
<ipython-input-3-529e6f16720b> in <module>()
50
51 # 表示
---> 52 plt.pause(.01)

~\Anaconda3\lib\site-packages\matplotlib\pyplot.py in pause(interval)
289 if canvas.figure.stale:
290 canvas.draw_idle()
--> 291 show(block=False)
292 canvas.start_event_loop(interval)
293 else:

~\Anaconda3\lib\site-packages\matplotlib\pyplot.py in show(*args, **kw)
249 """
250 global _show
--> 251 return _show(*args, **kw)
252
253

TypeError: show() got an unexpected keyword argument 'block'

このエラーが出ています

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

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

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

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

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

t_obara

2018/07/26 03:37

showを呼んだ時点でblockされるので、少なくともshowを外してみてはいかがでしょうか。
708

2018/07/26 03:57

回答ありがとうございます。 showを消してもコードを書いている以外の場所もblockされてしまいました。 TypeError Traceback (most recent call last) <ipython-input-1-d41367e57ef5> in <module>() 50 51 # 表示 ---> 52 plt.pause(.01) 53 #plt.rcParams["font.size"] = 10 ~\Anaconda3\lib\site-packages\matplotlib\pyplot.py in pause(interval) 289 if canvas.figure.stale: 290 canvas.draw_idle() --> 291 show(block=False) 292 canvas.start_event_loop(interval) 293 else: ~\Anaconda3\lib\site-packages\matplotlib\pyplot.py in show(*args, **kw) 249 """ 250 global _show --> 251 return _show(*args, **kw) 252 253 TypeError: show() got an unexpected keyword argument 'block'
t_obara

2018/07/26 04:01

エラーが分かりにくいのですが、ソースコードではコメントアウトされている最終行font.sizeを設定していますが、こちらが有効になっていませんか?pause後は何もしないとどうでしょうか?
708

2018/07/27 05:49

pause後のコードは消したのですが、エラーは変わらなかったです
t_obara

2018/07/27 06:28

最終的なコードと、その時に表示されたエラーを再度ご提示されてはいかがでしょうか。
t_obara

2018/07/27 09:04

申し訳ありません、大本の要望を踏まえて考えてみると、FuncAnimationを利用する方が良さそうです。こちらを参考にされてはいかがでしょうか。https://qiita.com/cyq04000/items/0d9a70c4dbc0aa738902 こちら以外にもFuncAnimationでググると色々と出てくるかと思います。
Fallout_18

2018/07/30 06:32

Githubで3次元ランダムウォークと検索かけてみてください。3次元リアルタイムプロットの仕方が書いてあります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問