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

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

ただいまの
回答率

89.63%

scikit-learn、 kmeans法を用いたクラスタリングについて縦軸、横軸を指定したい

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 641

matplotlibでの縦軸、横軸の指定をしたい

湿度センサDHT11と心拍センサを用いて感情別にクラスタ分析をしたいのですが、
matplotlibで可視化しようと思い、取得したデータをcsvファイルに保存し、csvファイルを読み取って表示させているのですが、以下のような結果になってしまいます
縦軸を心拍数、横軸を湿度として結果を表示させることが目標です

発生している問題

![イメージ説明](869afae72cfcc1fb85735bd1ade5f5ce.png)

該当のソースコード

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from matplotlib.colors import ListedColormap
colors = ['red','blue']
cmap = ListedColormap(colors)
from sklearn import datasets
from sklearn.cluster import KMeans
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np


def main():
    # クラスタ数
    N_CLUSTERS = 2

    # Blob データを生成する
    ##dataset = datasets.make_blobs(centers=N_CLUSTERS)


    # 正解ラベルは使わない
    # targets = dataset[1]
    data = pd.read_csv('heartRate1.csv',names=('cute','ang'))

    #del(data['cute'])
    #del(data['ang'])


    #data_array = data.as_matrix().T

    data_array = np.array([data['cute'].tolist(),
                           data['ang'].tolist()], np.int32)


    # 特徴データ
    features = data_array.T

    # クラスタリングする
    cls = KMeans(n_clusters=N_CLUSTERS)
    pred = cls.fit_predict(features)

    # 各要素をラベルごとに色付けして表示する


    ##for i in range(N_CLUSTERS):
       ## labels = features[pred == i]
    plt.scatter(features[:, 0], features[:, 1], c=pred, cmap=cmap)

    # クラスタのセントロイド (重心) を描く
    centers = cls.cluster_centers_
    plt.scatter(centers[:, 0], centers[:, 1], s=80,
                marker='p', edgecolors='k', c=range(N_CLUSTERS), cmap=cmap)

    plt.show()


if __name__ == '__main__':
    main()
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

0

コードブロックの中に画像のマークダウンを書いても表示されないので、外に出しておいてください。

イメージ説明

軸ラベルを付けたいということでしょうか。でしたら以下のようにできます。plt.show()の直前に入れれば大丈夫だと思います。

plt.xlabel("湿度")
plt.ylabel("心拍数")

python3を想定しています。また、matplotlibが日本語で使えるよう設定されていることも前提です。やってみて駄目だったらコメントで教えてください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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