前提・実現したいこと
約10000件の研究データを記録したCSVファイルがあります。
X座標 | Y座標 | -1, 0, 1のいずれかの値(Aとする) |
---|---|---|
-16.3426246643066 | 12.3114566802979 | 1 |
... | ... | ... |
これを用いて、横軸にX座標、縦軸にY座標を取った2次元の散布図に、Aの値で色分けをして点をプロットしていきたいです。
発生している問題
2次元の散布図は2変数の関係を表すものなので、どうしてもAの値で色分けしてプロットすることができません。解決方法はあるのかを教えていただきたいです。もしなければ、高さの軸にAの値を取った3次元の散布図で、Aの値で色分けする方法を教えていただきたいです。
使用しているバージョン
Python 3.8.5
追記
@can110さんの方法で以下のスクリプトで試しました。CSVファイルは3FloorLv4_result_2021-10-20-20-47-55.csv
という名前です。
test.py
1import matplotlib.pyplot as plt 2import numpy as np 3import pandas as pd 4 5# data = np.hstack([np.random.randint(0, 100, (30, 2)), np.random.randint(-1, 2, (30, 1))]) 6data = pd.read_csv("3FloorLv4_result_2021-10-20-20-47-55.csv", usecols=[0, 1, 2], nrows=1000, dtype="float") 7df = pd.DataFrame(data, columns=list("XZS")) 8 9colorList = {-1.0 : "r", 0.0 : "g", 1.0 : "b"} 10labelName = {-1 : "Error", 0 : "Failure", 1 : "Success"} 11 12for s in set(df["S"]) : 13 df2 = df[df["S"] == s] 14 c = colorList[s] 15 l = labelName[s] 16 plt.scatter(df2.X, df2.Z, color=c, label=l) 17 18plt.legend() 19plt.show() 20
すると、次のエラーが出ました。
Traceback (most recent call last): File "c:\Users\yuulis\ML-Agents\EL_3Floor\DrawGragh.py", line 14, in <module> c = colorList[s] KeyError: nan
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。