问题描述
我想根据分类数据制作一个简单的圆形甜甜圈注释图。因此,我首先制作一个简单的geom_tile
图,然后再添加coord_polar()
函数。但是,似乎我无法控制ylim制作甜甜圈的形状,因为它会产生以下错误:
错误:离散值提供给连续刻度。
现在我被这个数字所困扰:
再现情节并帮助我:
examp = data.frame(rep(c("A","B"),each=12),rep(c("C","D"),times=12),rep(c("E","F","G"),each=8),"H",1:24)
colnames(examp) = c("col1","col2","col3","col4","person")
examp$person = paste0("per.",examp$person)
examp2 <- melt(examp,id.var = 'person')
ggplot(examp2,aes(x=person,y=variable)) +
geom_tile(aes(fill = value),colour = "white")+
scale_y_discrete(breaks=y_breaks,labels=y_labels) +
coord_polar()+
theme(panel.background=element_blank(),axis.title=element_blank(),panel.grid=element_blank(),axis.text.x=element_blank(),axis.ticks=element_blank(),axis.text.y=element_text(size=5))
解决方法
在scale_y_discrete()
中指定扩展量对您有用吗?
ggplot(examp2,aes(x=person,y=variable)) +
geom_tile(aes(fill = value),colour = "white")+
scale_y_discrete(expand = expansion(mult = c(0.5,0),add = 0)) + # change amount if needed
coord_polar()+
theme(panel.background=element_blank(),axis.title=element_blank(),panel.grid=element_blank(),axis.text.x=element_blank(),axis.ticks=element_blank(),axis.text.y=element_text(size=5))
(我跳过了中断/标签,因为您实际上没有在问题中定义它们。)