想象一下,我在ggplot2中有一个饼图,
data <- data.frame(cluster = paste("Cluster", 1:3), size = c(0.33, 0.33, 0.33))
data = rbind(data, data)
ggplot(data, aes(x = factor(1), fill = cluster, weight=size)) +
geom_bar(width = 1) + coord_polar(theta="y")+ theme_bw() +
scale_x_discrete("",breaks=NULL) + scale_y_continuous("",breaks=NULL) +
theme(panel.border=element_blank(),
strip.text=element_blank(),
strip.background=element_blank(),
legend.position="none",
panel.grid=element_blank())
还有另一个强度向量,我用向量(0.2,-1,1)表示。我喜欢将每个切片着色为从蓝色到红色的渐变。比方说,蓝色,表示-1,红色表示1。
答案 0 :(得分:1)
首先,我建议一个更清晰的数据框,一次包含所有数据,创建如下:
> data <- data.frame(cluster = paste("Cluster", 1:3), size = c(0.2, 0.3, 0.5), strength = c(0.2, -1, 1))
> data
cluster size strength
1 Cluster 1 0.2 0.2
2 Cluster 2 0.3 -1.0
3 Cluster 3 0.5 1.0
然后,以下最小代码生成一个饼图,填充颜色在中点零点附近的比例上发散,具体取决于集群的强度值:
> ggplot(data, aes( x = factor(1), group = cluster, fill = strength, weight = size)) + geom_bar(width = 1) + coord_polar( theta = "y") + scale_fill_gradient2()
有关参考,请查看geom_bar文档页面中的scale_fill_gradient2文档页面示例: http://docs.ggplot2.org/current/scale_gradient2.html http://docs.ggplot2.org/current/geom_bar.html