teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2020/03/17 07:44

投稿

yureighost
yureighost

スコア2183

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

追記

2020/03/17 07:44

投稿

yureighost
yureighost

スコア2183

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

1

追記

2020/03/15 10:52

投稿

yureighost
yureighost

スコア2183

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
  ```