前提・実現したいこと
csvファイルから読み込んだデータを用いて3D散布図を描きたいのですが、データのグループが多いのでhueを用いてグループごとに色分けやlegendの作成をしたいと思っています。
今のところ簡略化したサンプルデータで練習しています。
2Dの散布図ならできたのですが、3Dにしようとするとできません。
サンプルデータcsvファイルの構成はirisデータの改変です(今回はPC4のデータは不要)。
各列の1行目は下記の通り名前を変えています。
PC1, PC2, PC3, PC4, sample
解決策をご教示頂けないでしょうか。
発生している問題・エラーメッセージ
エラーメッセージ AttributeError: 'Line2D' object has no property 'hue' ###データ PC1 PC2 PC3 PC4 sample 5.1 3.5 1.4 0.2 sample1 4.9 3 1.4 0.2 sample1 4.7 3.2 1.3 0.2 sample1 4.6 3.1 1.5 0.2 sample1 5 3.6 1.4 0.2 sample1 5.4 3.9 1.7 0.4 sample1 4.6 3.4 1.4 0.3 sample1 5 3.4 1.5 0.2 sample1 4.4 2.9 1.4 0.2 sample1 4.9 3.1 1.5 0.1 sample1 5.4 3.7 1.5 0.2 sample1 4.8 3.4 1.6 0.2 sample1 4.8 3 1.4 0.1 sample1 4.3 3 1.1 0.1 sample1 5.8 4 1.2 0.2 sample1 5.7 4.4 1.5 0.4 sample1 5.4 3.9 1.3 0.4 sample1 5.1 3.5 1.4 0.3 sample1 5.7 3.8 1.7 0.3 sample1 5.1 3.8 1.5 0.3 sample1 5.4 3.4 1.7 0.2 sample1 5.1 3.7 1.5 0.4 sample1 4.6 3.6 1 0.2 sample1 5.1 3.3 1.7 0.5 sample1 4.8 3.4 1.9 0.2 sample1 5 3 1.6 0.2 sample1 5 3.4 1.6 0.4 sample1 5.2 3.5 1.5 0.2 sample1 5.2 3.4 1.4 0.2 sample1 4.7 3.2 1.6 0.2 sample1 4.8 3.1 1.6 0.2 sample1 5.4 3.4 1.5 0.4 sample1 5.2 4.1 1.5 0.1 sample1 5.5 4.2 1.4 0.2 sample1 4.9 3.1 1.5 0.2 sample1 5 3.2 1.2 0.2 sample1 5.5 3.5 1.3 0.2 sample1 4.9 3.6 1.4 0.1 sample1 4.4 3 1.3 0.2 sample1 5.1 3.4 1.5 0.2 sample1 5 3.5 1.3 0.3 sample1 4.5 2.3 1.3 0.3 sample1 4.4 3.2 1.3 0.2 sample1 5 3.5 1.6 0.6 sample1 5.1 3.8 1.9 0.4 sample1 4.8 3 1.4 0.3 sample1 5.1 3.8 1.6 0.2 sample1 4.6 3.2 1.4 0.2 sample1 5.3 3.7 1.5 0.2 sample1 5 3.3 1.4 0.2 sample1 7 3.2 4.7 1.4 sample2 6.4 3.2 4.5 1.5 sample2 6.9 3.1 4.9 1.5 sample2 5.5 2.3 4 1.3 sample2 6.5 2.8 4.6 1.5 sample2 5.7 2.8 4.5 1.3 sample2 6.3 3.3 4.7 1.6 sample2 4.9 2.4 3.3 1 sample2 6.6 2.9 4.6 1.3 sample2 5.2 2.7 3.9 1.4 sample2 5 2 3.5 1 sample2 5.9 3 4.2 1.5 sample2 6 2.2 4 1 sample2 6.1 2.9 4.7 1.4 sample2 5.6 2.9 3.6 1.3 sample2 6.7 3.1 4.4 1.4 sample2 5.6 3 4.5 1.5 sample2 5.8 2.7 4.1 1 sample2 6.2 2.2 4.5 1.5 sample2 5.6 2.5 3.9 1.1 sample2 5.9 3.2 4.8 1.8 sample2 6.1 2.8 4 1.3 sample2 6.3 2.5 4.9 1.5 sample2 6.1 2.8 4.7 1.2 sample2 6.4 2.9 4.3 1.3 sample2 6.6 3 4.4 1.4 sample2 6.8 2.8 4.8 1.4 sample2 6.7 3 5 1.7 sample2 6 2.9 4.5 1.5 sample2 5.7 2.6 3.5 1 sample2 5.5 2.4 3.8 1.1 sample2 5.5 2.4 3.7 1 sample2 5.8 2.7 3.9 1.2 sample2 6 2.7 5.1 1.6 sample2 5.4 3 4.5 1.5 sample2 6 3.4 4.5 1.6 sample2 6.7 3.1 4.7 1.5 sample2 6.3 2.3 4.4 1.3 sample2 5.6 3 4.1 1.3 sample2 5.5 2.5 4 1.3 sample2 5.5 2.6 4.4 1.2 sample2 6.1 3 4.6 1.4 sample2 5.8 2.6 4 1.2 sample2 5 2.3 3.3 1 sample2 5.6 2.7 4.2 1.3 sample2 5.7 3 4.2 1.2 sample2 5.7 2.9 4.2 1.3 sample2 6.2 2.9 4.3 1.3 sample2 5.1 2.5 3 1.1 sample2 5.7 2.8 4.1 1.3 sample2 6.3 3.3 6 2.5 sample3 5.8 2.7 5.1 1.9 sample3 7.1 3 5.9 2.1 sample3 6.3 2.9 5.6 1.8 sample3 6.5 3 5.8 2.2 sample3 7.6 3 6.6 2.1 sample3 4.9 2.5 4.5 1.7 sample3 7.3 2.9 6.3 1.8 sample3 6.7 2.5 5.8 1.8 sample3 7.2 3.6 6.1 2.5 sample3 6.5 3.2 5.1 2 sample3 6.4 2.7 5.3 1.9 sample3 6.8 3 5.5 2.1 sample3 5.7 2.5 5 2 sample3 5.8 2.8 5.1 2.4 sample3 6.4 3.2 5.3 2.3 sample3 6.5 3 5.5 1.8 sample3 7.7 3.8 6.7 2.2 sample3 7.7 2.6 6.9 2.3 sample3 6 2.2 5 1.5 sample3 6.9 3.2 5.7 2.3 sample3 5.6 2.8 4.9 2 sample3 7.7 2.8 6.7 2 sample3 6.3 2.7 4.9 1.8 sample3 6.7 3.3 5.7 2.1 sample3 7.2 3.2 6 1.8 sample3 6.2 2.8 4.8 1.8 sample3 6.1 3 4.9 1.8 sample3 6.4 2.8 5.6 2.1 sample3 7.2 3 5.8 1.6 sample3 7.4 2.8 6.1 1.9 sample3 7.9 3.8 6.4 2 sample3 6.4 2.8 5.6 2.2 sample3 6.3 2.8 5.1 1.5 sample3 6.1 2.6 5.6 1.4 sample3 7.7 3 6.1 2.3 sample3 6.3 3.4 5.6 2.4 sample3 6.4 3.1 5.5 1.8 sample3 6 3 4.8 1.8 sample3 6.9 3.1 5.4 2.1 sample3 6.7 3.1 5.6 2.4 sample3 6.9 3.1 5.1 2.3 sample3 5.8 2.7 5.1 1.9 sample3 6.8 3.2 5.9 2.3 sample3 6.7 3.3 5.7 2.5 sample3 6.7 3 5.2 2.3 sample3 6.3 2.5 5 1.9 sample3 6.5 3 5.2 2 sample3 6.2 3.4 5.4 2.3 sample3 5.9 3 5.1 1.8 sample3 ### 該当のソースコード import seaborn as sns import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D df = pd.read_csv(r"ファイルパス",") fig = pyplot.figure() ax = Axes3D(fig) X=df["PC1"] Y=df["PC2"] Z=df["PC3"] p=ax.plot(X, Y, Z, hue=df["sample"] ) plt.show() ### 試したこと 一昨日pythonに初めて触った超初心者なので、エラーの意味を調べてもよくわかりませんでした。。。すみません。 ### 補足情報(FW/ツールのバージョンなど) python 3.7 seaborn 0.10.0 pandas 1.0.1 matplotlib 3.2.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/15 01:56