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

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

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

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

Q&A

解決済

1回答

2044閲覧

グラフ表示をする。。。

Penefax

総合スコア38

Python

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

0グッド

1クリップ

投稿2017/06/25 06:07

編集2017/07/13 08:24

###前提・実現したいこと
テンプレートマッチングにより得られた座標をcsvファイルに書き込んでいる。
その書き込んでいる数値を3次元散布図、2次元グラフで読み込みたい。
書き込まれていく段階で同時に散布図・グラフの描画を行いたい。

###発生している問題・エラーメッセージ
テンプレートマッチングの処理が行われて終了したのち、グラフ(散布図のみ)が表示される。

###該当のソースコード

Python

1# -*- coding: utf-8 -* 2 3from matplotlib import pyplot 4from mpl_toolkits.mplot3d import Axes3D 5import numpy as np 6from scipy import genfromtxt 7import sys 8import cv2 9import cv 10import csv 11import math 12 13 14d1 = genfromtxt("P.csv", delimiter=",") 15 16fig = pyplot.figure(figsize=(24,24)) 17 18# 全体を2x2に分割し、1枚目に描写 19ax = fig.add_subplot(121, projection='3d') 20ax.set_xlabel("X-axis") 21ax.set_ylabel("Y-axis") 22ax.set_zlabel("Z-axis") 23 24ax.set_xlim(-30, 30) 25ax.set_ylim(-40, 20) 26ax.set_zlim(100, 200) 27 28ax.plot(d1[:,0], d1[:,1], d1[:,2], "o", color="g", ms=16, mew=0.5) 29ax.plot(d2[:,8], d2[:,9], d2[:,10], "x", color="r", ms=16, mew=0.5) 30 31 32# 全体を2x2に分割し、2,3枚目に描写 33ax = fig.add_subplot(222) 34ax.set_xlabel('X-axis') 35ax.set_ylabel('Y-axis') 36ax.set_xlim(-30, 30) 37ax.set_ylim(-40, 20) 38 39ax.plot(d1[:,8], d1[:,9], "o", color="g", ms=24, mew=0.5) 40ax.plot(d2[:,0], d2[:,1], "x", color="r", ms=24, mew=0.5) 41 42ax.grid(True) 43 44ax = fig.add_subplot(224) 45ax.set_xlabel('Z-axis') 46ax.set_ylabel('Y-axis') 47ax.set_xlim(100, 200) 48ax.set_ylim(-40,20) 49 50ax.plot(d1[:,10], d1[:,9], "o", color="g", ms=24, mew=0.5) 51ax.plot(d2[:,2], d2[:,1], "x", color="r", ms=24, mew=0.5) 52 53ax.grid(True) 54 55while True: 56 csv.writer = d2.read() 57 58f.close() 59cv2.destroyAllWindows() 60src.release() 61rec.release() 62fig.show() 63pyplot.show()

内容は一部改変させていただいております。実際には作成した動画に文字を入れているがそこは今回の質問と関係がないため省略。
###試したこと
if関数やwhile関数で指定しようと試みたが失敗した。

###補足情報(言語/FW/ツール等のバージョンなど)
windows10
python2.7
matplotlib
spyder

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/07/01 01:43 編集

Q.1 処理の都度「3次元散布図」「2次元グラフ」が表示されてほしいのに、終了時にだけ「3次元散布図」が表示される、ということでしょうか? Q.2 手元で試すことができるような、でたらめなデータを一緒に乗せられませんか?
Penefax

2017/07/02 05:26

Q1.処理開始後にとある動画から座標を取得してそのデータがcsvに入力されていきます。本来はその処理中のとある動画とcsvから得られたデータを「3次元散布図」と「2次元散布図×2」が表示されてほしいのですが、このデータだと動画が流れて、動画が終了後にグラフが表示されてしまいます。しかも、3次元グラフのみ表示でとある動画から得られたcsvのデータを反映できてないということです。Q2.でたらめなデータはすみませんが用意することは出来ません。
guest

回答1

0

ベストアンサー

ザーッと読んだだけで実際に試したわけではありませんので参考までに…

*グラフのニコイチ

「3次元散布図」と「2次元散布図×2」が表示されてほしいのですが、このデータだと動画が流れて、動画が終了後にグラフが表示されてしまいます。しかも、3次元グラフのみ表示でとある動画から得られたcsvのデータを反映できてない

グラフが1つしか表示されない件は、Matplotlibで複数のグラフを描画する方法が参考になると思います。上手くいかないときには、既存のコードから最小限の行だけを抜き取って、先行事例のコードに突っ込んで走らせると問題点が見えてくると思います。

*グラフの適宜表示

書き込まれていく段階で同時に散布図・グラフの描画を行いたい

これをしようとすると以下のような構造でないとうまくいかないと思われます。

動画があるかどうかの確認 while 動画の終わりまで 動画の評価 評価結果をCSVファイルに結果を書き出す 評価結果をグラフ(2つ)に適用する 終了時の処理(すべて閉じる、動画を開放するなど)

恐らくグラフのニコイチの方がすぐにできると思いますので、まずはグラフを並べられるようにしてから構造の見直しをしてはいかがでしょうか?

投稿2017/07/02 06:30

編集2017/07/02 06:31
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問