AILING

- 2018年8月24日
- 注册于 2017年9月11日
- 已编辑
library(ggplot2) # Base Plot g <- ggplot(mpg, aes(x=displ, y=hwy)) + geom_point() + facet_grid(manufacturer ~ class) plot(g1)
[代码来源](http://r-statistics.co/Complete-Ggplot2-Tutorial-Part2-Customizing-Theme-With-R-Code.html)
问题 :
1. 使用facet_grid之后 每个图片过小看不清坐标。所以想把7列变为一列,每行只放一张图 。排完colname(mpg)[1], 再排colname(mpg)[2] .... 按序排列。
2. 调整图片大小- 已编辑
Data
ID <- 1:20
conc <- round(rnorm(20, 100, 20), 1)
gene <- c("GA", "AT", "AT", "GA", "GA", "AT", "TT", "TT", "GA", "GG", "GA", "AT", "GT", "TT", "GT", "GA", "GT", "AT", "GT", "GG")
dt <- data.frame(ID, conc, gene)
dt[,3] = lapply(dt[,3],function(x) factor(x, levels=c("GA", "AT", "TT", "GG", "GT"))) # 运行到这里会出错加上这一步骤的原因是, 尽管某个level缺失也要在x轴上标记出来,以防程序自动省略掉, 就是让数据循环中的每一个图保持这五个level。
错误提示
Warning message:
In[<-.data.frame
(*tmp*
, , 3, value = list(1L, 2L, 2L, 1L, 1L, :
provided 20 variables to replace 1 variables绘图
boxplot(conc~as.factor(gene), data=dt, xaxt="n")
beeswarm(conc~as.factor(gene), data=dt, col="deeppink")axis
axis(1, at=1:5, labels=c(paste0("GA","\n n=",length(dt[,2]=="GA")),
paste0("AT","\n n=",length(dt[,2]=="AT")),
paste0("TT","\n n=",length(dt[,2]=="TT")),
paste0("GG","\n n=",length(dt[,2]=="GG")),
paste0("GT","\n n=",length(dt[,2]=="GT"))))请指教!
data
dt <- data.frame(ID=1:20, conc=rnorm(100, 25), gene1=sample(0:2, 20, replace=TRUE),
gene2=sample(0:2, 20, replace = TRUE), gene3 = sample(0:2, 20, replace=TRUE))
geneNames = names(dt)[3:5]
for(i in geneNames)
{
boxplot(conc~as.factor(i), data=dt)
}
为什么不能循环呢? 该怎样修改呢? 请指教!谢谢分享