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

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

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

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1379閲覧

ValueError: x and y must have same first dimension, but have shapes (2,) and (1,)の解決法

YukaU

総合スコア16

Matplotlib

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/01/28 07:48

編集2019/01/28 08:18

csvデータを読み込んでリアルタイムで描画していくプログラムを作成しています。

python

1#!/usr/bin/python 2# coding: UTF-8 3 4import matplotlib.pyplot as plt 5import numpy as np 6 7data = np.genfromtxt("data.csv", dtype = float, delimiter = ",") 8 9N = data[:,5] 10L = data[:,10] 11C = data[:,9] 12P = data[:,11] 13 14i = 0 15x = [] 16n = [] 17l = [] 18c = [] 19p = [] 20 21plt.ion() 22plt.grid() 23 24while True: 25 i = i + 1 26 27 plt.subplot(411) 28 plt.xlim(0,100) 29 plt.ylim(0,300) 30 x.append(i) 31 n.append(nomal[i]) 32 plt.plot(x,n,color='red') 33 plt.draw() 34 35 plt.subplot(412) 36 plt.xlim(0,100) 37 plt.ylim(0,300) 38 x.append(i) 39 l.append(Il[i]) 40 plt.plot(x,l,color='yellow') 41 plt.draw() 42 43 plt.subplot(413) 44 plt.xlim(0,100) 45 plt.ylim(-50,50) 46 x.append(i) 47 c.append(cor[i]) 48 plt.plot(x,c,color='blue') 49 plt.draw() 50 51 plt.subplot(414) 52 plt.xlim(0,100) 53 plt.ylim(-10,10) 54 x.append(i) 55 p.append(pulse[i]) 56 plt.plot(x,p,color='green') 57 plt.draw() 58 59 if i == 2000: 60 break 61 62 plt.pause(0.05) 63 64plt.close()

リアルタイムグラフプロットが初めてなのでインターネット上にあるコードを参考にして作りましたが、

Traceback (most recent call last): File "demo.py", line 45, in <module> plt.plot(x,l,color='yellow') File "C:\Tools\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 3363, in plot ret = ax.plot(*args, **kwargs) File "C:\Tools\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1867, in inner return func(ax, *args, **kwargs) File "C:\Tools\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 1528, in plot for line in self._get_lines(*args, **kwargs): File "C:\Tools\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 406, in _grab_next_args for seg in self._plot_args(this, kwargs): File "C:\Tools\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 383, in _plot_args x, y = self._xy_from_xy(x, y) File "C:\Tools\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 242, in _xy_from_xy "have shapes {} and {}".format(x.shape, y.shape)) ValueError: x and y must have same first dimension, but have shapes (2,) and (1,)

というエラーが出ました。
どこが間違っているのでしょうか??
よろしくお願いいたします。

data.csv

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

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

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

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

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

tiitoi

2019/01/28 08:03

data.csv の中身を質問欄に貼れますか
YukaU

2019/01/28 08:13

ファイルの貼り方がわからなかったのでスクリーンショットです。 データが1つのときの描画はうまくいきました。 データを4つにしたときに、 4つのデータを、y.append(nomal[i]) 、y.append(Il[i])、y.append(cor[i])、y.append(pulse[i])にしていたときはうまくいきましたが、明らかにすべてのグラフが同じデータのプロットをしていたため変更したら、このエラーが出ました。
tiitoi

2019/01/28 08:17

plt.plot(x, y) をしてる場所の最初の2つの引数を print して配列の長さが同じか確認してください 同じになっていない箇所があれば、それが原因です。
YukaU

2019/01/28 08:22

2つめのデータでxが[1, 1]になっていたので恐らくx.append(i) をデータ毎に書いていたのが原因のようです。 2つめ以降のx.append(i)を消したら無事動きました! ありがとうございました。
guest

回答1

0

自己解決

x.append(i) をデータ毎に書いていたのが原因でした

投稿2019/01/28 08:23

YukaU

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問