我想将情节的图例分成两行。我使用了下面的代码,它不会将图例分成两行。我在论坛中搜索,大多数人建议使用美学中的分组,例如,如果按变量分组已填充,则必须在指南参数中传递相同的内容。我和小组一起这样做了,但没有成功。任何帮助,将不胜感激。
points<-c("80","60","40","20","all")`
var1<-c(59,48,44,39,36)
var2<-c(91,88,81,78,69)
var3<-c(98,97,96,93,90)
var4<-c(8,7.5,6,5,4)
data<-data.frame(points,var1,var2,var3,var4)
data2<-melt(data,key=points)
x<-ggplot(data2,aes(x=points,y=value,group=variable))+
geom_line(aes(linetype=variable))+geom_point()+
scale_linetype_manual(values=c(5,6,3,1))
x+guides(group=guide_legend(nrow=2))
Run Code Online (Sandbox Code Playgroud) 我创建了一个堆叠的条形图,并使用两个变量对其进行了分面。我无法将值放置在条形图的中间,它要么出现在极端位置要么重叠。预期的图像如下:

我在下面粘贴了脚本。任何帮助,将不胜感激。
library(dplyr)
library(reshape2)
library(ggplot2)
year<-c("2000","2000","2010","2010","2000","2000","2010","2010")
area<-c("Rural","Rural","Rural","Rural","Urban","Urban","Urban","Urban")
sex<-c("Male","Female","Male","Female","Male","Female","Male","Female")
city<-c(58,61,74,65,51,55,81,54)`
village<-c(29,30,20,18,42,40,14,29)
town<-c(13,9,6,17,7,5,5,17)
data<-cbind.data.frame(year,area,sex,city,village,town)
dre<-melt(data,id.vars = c("year","area","sex"))
dre <- arrange(dre,year,area,sex,variable) %>%
mutate(pos = cumsum(value) - (0.5 * value))
a <- ggplot(dre,aes(factor(sex),value,fill=variable)) +
geom_bar(stat='identity',position="stack")
b <- a +
facet_wrap(factor(year)~area)
c <- b +
geom_text(aes(label=paste0(value,"%"),y=pos),
position="stack",size=2,hjust=0.85,color="black")
d <- c +
coord_flip() +
theme_bw() +
scale_fill_brewer()
print(d)
Run Code Online (Sandbox Code Playgroud)