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

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

ただいまの
回答率

90.62%

  • Python 3.x

    5864questions

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

  • VirtualBox

    722questions

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

  • Matplotlib

    282questions

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

pythonでグラフ出力エラー

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 367

dcorei7

score 1

前提・実現したいこと

仮想環境(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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • jun68ykt

    2018/01/14 22:57

    追加いただきました行を CSV に追加し、実行してみたらこんな感じ http://or2.mobi/data/img/191161.png  でグラフが表示されたのですが・・・

    キャンセル

  • jun68ykt

    2018/01/14 23:09

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

    キャンセル

  • dcorei7

    2018/01/14 23:34

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

    キャンセル

回答 1

checkベストアンサー

+1

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python 3.x

    5864questions

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

  • VirtualBox

    722questions

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

  • Matplotlib

    282questions

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