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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Matplotlib

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

Python 3.x

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

Q&A

解決済

1回答

1287閲覧

pythonとmatplotlibを使ったグラフ表示

shin14

総合スコア11

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Matplotlib

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

Python 3.x

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

0グッド

0クリップ

投稿2022/04/11 07:15

編集2022/04/11 08:55

pythonのmatplotlibを使ったグラフ表示にてうまく表示できずに困っています。
CSVファイルにFFTをかけたデータを保存しており、そのデータをグラフ化したいと思い
下記のようなコードでチャレンジしたのですが、表示するデータの種類が3種類までは
上手く表示できますが、4つ目のデータ列を追加すると表示されません.
初めてpythonとmatplotlibをつかってコーディングしているのですが、matplotlibの使い方を間違っているのでしょうか

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import pandas as pd
import matplotlib.pyplot as plt

input_csv = pd.read_csv('./fft.csv')

first_column_data = input_csv[input_csv.keys()[0]]
second_column_data = input_csv[input_csv.keys()[1]]
third_column_data = input_csv[input_csv.keys()[2]]
fourth_column_data = input_csv[input_csv.keys()[3]]

plt.xlabel(input_csv.keys()[0])
plt.ylabel(input_csv.keys()[1])
plt.ylabel(input_csv.keys()[2])
plt.ylabel(input_csv.keys()[3])

plt.plot(first_column_data,second_column_data,third_column_data,fourth_column_data, linestyle='solid')
plt.show()

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CSVのデータ抜粋
Freq   amp1        amp2         amp3
0    1.41E-16     0.003996004      1.56E-15
1    0.000201547   0.004005992      0.000199231
2   0.000415666   0.00403626       0.000399794
3    0.000657687   0.004087735       0.000603055
4    0.000949    0.004162049      0.000810437

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

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

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

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

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

meg_

2022/04/11 10:26

> 4つ目のデータ列を追加すると表示されません. 何も表示されないのですか?
jbpb0

2022/04/11 23:38 編集

質問のコードの > plt.plot(first_column_data,second_column_data,third_column_data,fourth_column_data, linestyle='solid') plt.show() は、下記と同じ意味になります (実行したら、同じグラフが描画されると思います) plt.plot(first_column_data, second_column_data, linestyle='solid') plt.plot(third_column_data, fourth_column_data, linestyle='solid') plt.show() CSVファイルの一行目の列名から想像すると、質問者さんがやりたいのは、上記ではなく下記ではないですか? plt.plot(first_column_data, second_column_data, linestyle='solid') plt.plot(first_column_data, third_column_data, linestyle='solid') plt.plot(first_column_data, fourth_column_data, linestyle='solid') plt.show()
shin14

2022/04/11 23:50

>>meg_さん Freq,amp1,amp2まで表示させたときは正しい波形が表示されますが、 amp3のデータを追加した際にはamp2のデータが無視され、なぜか表示される波形の順番(表示される位置)が入れ子になっています。 //////////////////////////////////////////////////////////////////////////////////////////////////////// >>jbpb0さん 試しにご提示いただいたコードで試してみました。 まさに求めていたものです。ありがとうございます。 これはplt.plotの記述方法そのものに誤りがあったということですかね・・・・ 参考にしたサイト(どこかは忘れた)では私の書いた記述方法で3つ以上の波形を表示していたので 参考にしたのですが、そっちが間違っていたかもしくは特別な何かをしていたということですかね。 参考までに理解があっているか確認したいのですが、 plt.plot(X軸の長さのデータ,表示したいデータ1,表示したいデータ2,表示したいデータ3,......,線種類) と表示したいデータをカンマ区切りで追加していけば増やせるものだと思っていましたが、正確には plt.plot(X軸の長さのデータ,表示したいデータ1,線種)というのが記述ルールという認識であっていますでしょうか?
jbpb0

2022/04/12 00:54

plt.plot(first_column_data, second_column_data, first_column_data, third_column_data, first_column_data, fourth_column_data, linestyle='solid') plt.show() でも大丈夫です
shin14

2022/04/12 01:09

なるほど!必ずX軸とY軸(表示データ)がセットであればいいってことですね! ありがとうございます。助かりました!
jbpb0

2022/04/18 23:58

解決済みにしてください
guest

回答1

0

自己解決

jbpb0さんからご提示いただいた下記の内容で解決できました

CSVファイルの一行目の列名から想像すると、質問者さんがやりたいのは、上記ではなく下記ではないですか?
plt.plot(first_column_data, second_column_data, linestyle='solid')
plt.plot(first_column_data, third_column_data, linestyle='solid')
plt.plot(first_column_data, fourth_column_data, linestyle='solid')
plt.show()

同じことは下記のような表現でも表すことが出来ます。
plt.plot(first_column_data, second_column_data, first_column_data, third_column_data, first_column_data, fourth_column_data, linestyle='solid')
plt.show()
データはx軸のデータとy軸のデータは必ずセット!同じx軸上にプロットしていく場合でも!

投稿2022/04/12 01:13

shin14

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問