0

パラメーターの値を持つクラスターの大規模なデータセットがあります。複数のクラスターが同じ値を持つことができます。

累積パーセンテージなしの累積パーセント度数分布プロットを作成したいと思います。y 軸にクラスターの数、x 軸にパラメーター値 (0 ~ 1 の範囲) を示します。

値に基づいてデータを並べ替えましたが、その後、R (ecdf) または matplotlib を使用して累積プロットを取得するためにデータを処理する方法がわかりません。どうすればこれにアプローチできますか?どんな助けでも大歓迎です。

私のデータは次のようになります

Cluster_20637   0.020
Cluster_20919   0.020
Cluster_9642    0.147
Cluster_10141   0.148
Cluster_21451   0.148
Cluster_30198   0.148
Cluster_55982   0.498
Cluster_10883   0.500
Cluster_16641   0.500
Cluster_20143   0.500
Cluster_57942   0.867
Cluster_32878   0.868
Cluster_26249   0.870
Cluster_46928   0.870
Cluster_41908   0.871
Cluster_28603   0.872
Cluster_1419    0.873
4

1 に答える 1

1

data.frameと呼ばれるデータのダンプを次に示しますtest

test <- structure(list(cluster = structure(c(6L, 7L, 17L, 1L, 8L, 11L, 
15L, 2L, 4L, 5L, 16L, 12L, 9L, 14L, 13L, 10L, 3L), .Label = c("Cluster_10141", 
"Cluster_10883", "Cluster_1419", "Cluster_16641", "Cluster_20143", 
"Cluster_20637", "Cluster_20919", "Cluster_21451", "Cluster_26249", 
"Cluster_28603", "Cluster_30198", "Cluster_32878", "Cluster_41908", 
"Cluster_46928", "Cluster_55982", "Cluster_57942", "Cluster_9642"
), class = "factor"), value = c(0.02, 0.02, 0.147, 0.148, 0.148, 
0.148, 0.498, 0.5, 0.5, 0.5, 0.867, 0.868, 0.87, 0.87, 0.871, 
0.872, 0.873)), .Names = c("cluster", "value"), row.names = c(NA, 
-17L), class = "data.frame")

次のようになります。

         cluster value
1  Cluster_20637 0.020
2  Cluster_20919 0.020
3   Cluster_9642 0.147
<<snip>>
16 Cluster_28603 0.872
17  Cluster_1419 0.873

累積パーセンテージ変数を生成する

> test$cumperc <- (1:nrow(test))/nrow(test)
> test

         cluster value    cumperc
1  Cluster_20637 0.020 0.05882353
2  Cluster_20919 0.020 0.11764706
3   Cluster_9642 0.147 0.17647059
<<snip>>
14 Cluster_46928 0.870 0.82352941
15 Cluster_41908 0.871 0.88235294
16 Cluster_28603 0.872 0.94117647
17  Cluster_1419 0.873 1.00000000

次に、データをプロットします

plot(test$value,test$cumperc,type="l",xlim=c(0,1))

ここに画像の説明を入力

以下のコメントに対処するために編集します。

これを試して、最初にクラスターをグループ化します。

tabvals <- table(test$value)
plot(names(tabvals),(1:length(tabvals))/length(tabvals),xlim=c(0,1),type="l")

これにより、次のプロットが得られます。

ここに画像の説明を入力

于 2012-06-02T06:19:00.187 に答える