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

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

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

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

Python 3.x

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Q&A

解決済

1回答

335閲覧

pythonでグラフ出力エラー

dcorei7

総合スコア8

Matplotlib

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

Python 3.x

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

0グッド

1クリップ

投稿2018/01/14 12:28

編集2018/01/14 13:50

###前提・実現したいこと
仮想環境(VirtualBox)でUbuntuを使ってpythonプログラムを書いて実行しようとしたところ、以下のエラーが出てきました。

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

Traceback (most recent call last): File "zemi.py", line 28, in <module> plt.hist(yTest, stacked=False) File "/home/user/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py", line 3081, in hist stacked=stacked, data=data, **kwargs) File "/home/user/anaconda3/lib/python3.6/site-packages/matplotlib/__init__.py", line 1898, in inner return func(ax, *args, **kwargs) File "/home/user/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py", line 6181, in hist xmin = min(xmin, xi.min()) TypeError: '<' not supported between instances of 'str' and 'float'

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

import matplotlib.pyplot as plt import pandas as pd from sklearn.svm import LinearSVC from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score #ファイルのロード filename = "sample_brain.csv" data = pd.read_csv(filename) xLabels = ["L-OxyHb","R-OxyHb","L-alpha_wave","L-beta_wave","R-alpha_wave","R-beta_wave"] yLabel = "State" #データのロード x = data.loc[:,xLabels].as_matrix() y = data[yLabel].as_matrix() #データの分割 xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size=0.2) #学習 clf = LinearSVC() clf.fit(xTrain, yTrain) #予習 pred = clf.predict(xTest) as_score = accuracy_score(yTest, pred) print("正答率=",as_score) print(type(pred[0])) print(type(yTest[0])) plt.hist(yTest, stacked=False) plt.show() #以下ファイルの中身(一部) Time_sec,State,L-OxyHb,R-OxyHb,L-alpha_wave,L-beta_wave,R-alpha_wave,R-beta_wave 0,R,-0.207770021,-0.040125562,6.571024841,12.76696774,4.807984772,3.647846237 1,R,-0.499876422,-0.009635089,6.807501836,13.32041926,4.872790764,3.323562411 2,R,-0.674491204,0.06408421,6.520271256,12.86047646,4.785522848,3.42067873 3,R,-0.984662425,0.191037328,6.504228494,12.59688769,4.710000845,3.497971917 4,R,-1.262103923,0.347177602,6.864680316,13.20484358,4.885323863,3.48521440 5,R,-1.400516454,0.325782702,6.622056916,13.31293249,4.706103885,3.619939992 ... 61,Q,-3.631083792,1.270776369,5.247193426,9.816273722,3.611635858,3.16363543 62,Q,-3.72513241,1.278621697,4.989843133,10.13495076,3.718916277,3.293305787 63,Q,-3.723099026,1.291723664,4.856020523,9.19311994,3.782081178,3.358520813 64,Q,-3.714487594,1.299746499,4.669393696,9.019095913,3.715106854,3.304428491 65,Q,-3.695234488,1.308833108,4.751152702,9.482131775,3.730737743,3.34828988 ... 91,A1,-2.753106504,0.782475757,5.270348768,9.273530535,4.131337069,3.846498874 92,A1,-2.917164782,0.076010221,5.209104047,9.431091087,4.490369363,3.999835121 93,A1,-3.320339674,-0.584500103,5.533485142,10.04289327,4.677968774,4.045359713 94,A1,-3.702752327,-0.775008414,5.373481954,10.09183952,4.502001666,3.984718805 95,A1,-3.631887226,-0.814918233,5.240474026,10.10507062,4.2733062,3.863904189 ... 151,A2,-3.543843768,-0.626174296,5.550976429,10.96767758,5.806049601,4.049917416 152,A2,-3.862089059,-0.673675183,5.338013437,10.9229814,5.36440255,3.716026503 153,A2,-4.041481977,-0.690667958,5.540256354,11.14860937,5.358139488,3.75170165 154,A2,-4.014275141,-0.661882435,5.760647536,11.50523178,5.263541812,3.841356095 155,A2,-3.75671353,-0.60218502,5.793725959,10.58997587,5.187940765,3.573248116 ...

###試したこと
わからないため、試してないです。

###補足情報(言語/FW/ツール等のバージョンなど)
言語:python
パッケージ管理:anaconda3

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

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

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

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

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

jun68ykt

2018/01/14 12:50

filename = "sample_brain.csv" で読ませている CSV ファイルのサンプルを質問に提示することは可能ですか?
jun68ykt

2018/01/14 13:37 編集

#以下ファイルの中身(一部) の7行をコピペしてsample_brain.csvを作って実行してみましたが、確かにエラーにはなるのですが、ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 'R' という別のエラーが発生しますので、質問の状況を再現できないです。
dcorei7

2018/01/14 13:20

わかりました。ありがとうございます。VirtualBoxで実行してるのであって、環境依存の可能性もありますかね・・・
jun68ykt

2018/01/14 13:35

「環境依存の可能性」については何ともはっきりしたことは言えないですが、私の手元で出たエラー、ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 'R' というメッセージから、正しく実行するには、2カラム目が R ではない行がCSVに必要なのではないか?という気もしてます。
dcorei7

2018/01/14 13:42

2カラム目がRではない行は後の方にありますね。そちらも貼ったほうがいいでしょうか。
jun68ykt

2018/01/14 13:45

matplotlib や pandas はあまり詳しくありませんが、LとRが対になっているデータではないでしょうか?とすると、2カラム目が L の行もあるのではないかと思います。それも貼って頂ければ、追加して動かしてみます。
jun68ykt

2018/01/14 14:09

私の手元で先の画像のようにグラフが表示されましたが、私の手元の環境の現時点のsample_brain.csv の内容を https://jsfiddle.net/jun68ykt/Lcx3swL4/ に貼りましたので、この20行+ヘッダ1行をコピペして、sample_brain.csv にして実行して頂き、もしグラフが出なければ環境依存ということになりそうです。参考になれば幸いです。
dcorei7

2018/01/14 14:34

貼ってもらったデータで試してもグラフは出てこなかったため、環境依存の可能性はありますね。ありがとうございました。
guest

回答1

0

ベストアンサー

ヒストグラムにすると、値域を定めて比較が行われます。

今ラベルが文字列なので、比較がうまくいかずエラーが出ます。

カウントメソッドを使ってやるとうまくいくはずです。

https://stackoverflow.com/questions/14992644/turn-pandas-dataframe-of-strings-into-histogram
pandasの機能を使った際の例がリンク先にあります。

投稿2018/01/14 14:02

mkgrei

総合スコア8560

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問