回答編集履歴
3
追記
answer
CHANGED
@@ -5,4 +5,35 @@
|
|
5
5
|
それでエラーは発生せずにグラフの描画が行われます。
|
6
6
|
```python
|
7
7
|
df = pd.read_csv(r"ファイルパス", sep='\s+', skipinitialspace=True)
|
8
|
+
```
|
9
|
+
|
10
|
+
**追記**
|
11
|
+
質問で挙げられている「グラデーションになっていないがグラフはできるソースコード」で
|
12
|
+
グループ毎の色分け自体はできていると思います。
|
13
|
+
ただ白っぽい色が入っているためグラフ上で見えにくくなってしまっているだけで。
|
14
|
+
白い色の入っていないカラーテーブルを使う方法はどうでしょうか。
|
15
|
+
```python
|
16
|
+
import pandas as pd
|
17
|
+
import matplotlib.pyplot as plt
|
18
|
+
from mpl_toolkits.mplot3d import Axes3D
|
19
|
+
import matplotlib.cm as cm
|
20
|
+
|
21
|
+
df = pd.read_csv(r"test.csv", delimiter=",", sep='\s+', skipinitialspace=True)
|
22
|
+
|
23
|
+
fig = plt.figure()
|
24
|
+
ax = Axes3D(fig)
|
25
|
+
|
26
|
+
samples = sorted(set(df['sample']))
|
27
|
+
dsize = len(samples)
|
28
|
+
|
29
|
+
# sample毎に描画
|
30
|
+
for idx, sample in enumerate(samples):
|
31
|
+
df2 = df[df['sample'] == sample]
|
32
|
+
X = df2["PC1"]
|
33
|
+
Y = df2["PC2"]
|
34
|
+
Z = df2["PC3"]
|
35
|
+
p=ax.scatter(X, Y, Z, c=[cm.hsv(idx/dsize)], label=sample)
|
36
|
+
|
37
|
+
plt.legend()
|
38
|
+
plt.show()
|
8
39
|
```
|
2
追記
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
質問者の環境と同じに再現できてるかはわからないですが、
|
2
|
-
Dataの部分が貼り付けてある通り半角スペース区切りのデータなら
|
2
|
+
Dataの部分が貼り付けてある通り半角スペース区切りのデータなら
|
3
|
-
区切れずに半角スペースの文字のまま一つのカラムで読み込まれてしまっています。
|
3
|
+
read_csv関数で区切れずに半角スペースの含まれた文字のまま一つのカラムで読み込まれてしまっています。
|
4
4
|
カンマ区切りのdelimiterは不要でsepのみで大丈夫です。
|
5
5
|
それでエラーは発生せずにグラフの描画が行われます。
|
6
6
|
```python
|
1
追記
answer
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
Dataの部分が貼り付けてある通り半角スペース区切りのデータならread_csv関数で
|
3
3
|
区切れずに半角スペースの文字のまま一つのカラムで読み込まれてしまっています。
|
4
4
|
カンマ区切りのdelimiterは不要でsepのみで大丈夫です。
|
5
|
+
それでエラーは発生せずにグラフの描画が行われます。
|
5
6
|
```python
|
6
7
|
df = pd.read_csv(r"ファイルパス", sep='\s+', skipinitialspace=True)
|
7
8
|
```
|