我有一个包含参数值的大型聚类数据集。多个群集可以具有相同的值。
我想制作累积百分比频率分布图,累计百分比为no。 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
答案 0 :(得分:1)
以下是名为data.frame
的{{1}}数据转储:
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
然后绘制数据
积(测试$值,测试$ cumperc,类型= “L”,XLIM = C(0,1))
编辑以解决以下评论:
首先尝试对群集进行分组:
> 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
这给出了这个情节: