回答編集履歴

3

追記

2020/03/17 07:44

投稿

yureighost
yureighost

スコア2183

test CHANGED
@@ -13,3 +13,65 @@
13
13
  df = pd.read_csv(r"ファイルパス", sep='\s+', skipinitialspace=True)
14
14
 
15
15
  ```
16
+
17
+
18
+
19
+ **追記**
20
+
21
+ 質問で挙げられている「グラデーションになっていないがグラフはできるソースコード」で
22
+
23
+ グループ毎の色分け自体はできていると思います。
24
+
25
+ ただ白っぽい色が入っているためグラフ上で見えにくくなってしまっているだけで。
26
+
27
+ 白い色の入っていないカラーテーブルを使う方法はどうでしょうか。
28
+
29
+ ```python
30
+
31
+ import pandas as pd
32
+
33
+ import matplotlib.pyplot as plt
34
+
35
+ from mpl_toolkits.mplot3d import Axes3D
36
+
37
+ import matplotlib.cm as cm
38
+
39
+
40
+
41
+ df = pd.read_csv(r"test.csv", delimiter=",", sep='\s+', skipinitialspace=True)
42
+
43
+
44
+
45
+ fig = plt.figure()
46
+
47
+ ax = Axes3D(fig)
48
+
49
+
50
+
51
+ samples = sorted(set(df['sample']))
52
+
53
+ dsize = len(samples)
54
+
55
+
56
+
57
+ # sample毎に描画
58
+
59
+ for idx, sample in enumerate(samples):
60
+
61
+ df2 = df[df['sample'] == sample]
62
+
63
+ X = df2["PC1"]
64
+
65
+ Y = df2["PC2"]
66
+
67
+ Z = df2["PC3"]
68
+
69
+ p=ax.scatter(X, Y, Z, c=[cm.hsv(idx/dsize)], label=sample)
70
+
71
+
72
+
73
+ plt.legend()
74
+
75
+ plt.show()
76
+
77
+ ```

2

追記

2020/03/17 07:44

投稿

yureighost
yureighost

スコア2183

test CHANGED
@@ -1,8 +1,8 @@
1
1
  質問者の環境と同じに再現できてるかはわからないですが、
2
2
 
3
- Dataの部分が貼り付けてある通り半角スペース区切りのデータならread_csv関数で
3
+ Dataの部分が貼り付けてある通り半角スペース区切りのデータなら
4
4
 
5
- 区切れずに半角スペースの文字のまま一つのカラムで読み込まれてしまっています。
5
+ read_csv関数で区切れずに半角スペースの含まれた文字のまま一つのカラムで読み込まれてしまっています。
6
6
 
7
7
  カンマ区切りのdelimiterは不要でsepのみで大丈夫です。
8
8
 

1

追記

2020/03/15 10:52

投稿

yureighost
yureighost

スコア2183

test CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  カンマ区切りのdelimiterは不要でsepのみで大丈夫です。
8
8
 
9
+ それでエラーは発生せずにグラフの描画が行われます。
10
+
9
11
  ```python
10
12
 
11
13
  df = pd.read_csv(r"ファイルパス", sep='\s+', skipinitialspace=True)