目前,下面的代码(更全面的代码的一部分)生成一条从图形的最左边到最右边的线。
geom_abline(intercept=-8.3, slope=1/1.415, col = "black", size = 1,
lty="longdash", lwd=1) +
Run Code Online (Sandbox Code Playgroud)
但是,我希望该行的范围仅从 x=1 到 x=9;x 轴的范围是 1-9。
在ggplot2中,是否有命令可以减少从手动定义的截距和斜率导出的线,使其仅覆盖x轴值限制的范围?
我想更改此条形图中“丰富”一词的位置。我希望该单词与其他标签的第一个单词的位置对齐,即放置在顶行而不是底行。
p0 <-
ggplot(lineshift, aes(x=name, y=value, fill=factor(product))) +
geom_bar(stat="identity", position="dodge", width=0.8) +
geom_text(aes(x=name, y=value, ymax=value, label=round(value),
hjust=0.5, vjust=-0.5),
position = position_dodge(width=0.8)) +
scale_fill_manual(values=c("blue", "red"),
name="Treatment",
breaks=c(1, 2),
labels=c("A", "B")) +
xlab("Biodiversity") +
ylab("Relative occurences (%)") +
scale_y_continuous(expand=c(0.0,0.5),
limits=c(0, 71),
breaks=c(0,10,20,30,40,50,60,70),
labels=c("0","10","20","30","40","50","60","70")) +
scale_x_discrete(limits=c("Biodiversity of tropical lowland rainforest", "Species composition in understorey", "Richness"),
labels = sapply(strwrap(as.character(lineshift$name), width=30, simplify=F), paste, collapse="\n")) +
theme_bw() +
theme(legend.position=c(0.9,0.9)) +
theme(legend.title=element_blank()) +
theme(axis.title.x = element_text(vjust=0.1,face="bold", size=16),
axis.text.x = element_text(vjust=0.1, size=14, angle=0))+
theme(axis.title.y = element_text(angle=90, vjust=0.70, face="bold", …Run Code Online (Sandbox Code Playgroud) 我正在使用堆积条形图来显示物种相对优势.
使用以下代码生成条形图:
RelDom <- RelDom[order(RelDom[,2]),] # rank by column A
RelDom
RelDom %>%
gather(LU, RD, -species) -> likert
likert
likert %>%
filter(LU=="A") %>%
arrange(RD) %>% .$species -> ind_order
ind_order
likert %>%
mutate(species=factor(species, levels=ind_order, ordered=TRUE)) %>%
mutate(LU=factor(LU,
levels=c("A", "C", "B"), ordered=F,
labels=c("A", "C", "B"))) -> lik
lik
tiff(file = "RD.tiff", height=10, width=20, units="in", res=300, compression="lzw")
ggplot() +
geom_hline(yintercept=0, lwd=1) +
geom_bar(data=lik, width=.75,
stat="identity", position="stack",
aes(x=species, y=RD, fill=LU)) +
annotate("text", x = 2, y=-50, label = "Old", size=8) +
annotate("text", x = …Run Code Online (Sandbox Code Playgroud) 我试图在R中运行两个类似的广义线性混合模型.两个模型对于预测变量,协变量和随机因子具有相同的输入变量,但是,响应变量不同.型号需要lme4包装.Ben Bolker解决了第二个模型的问题.
在第一个模型中,响应变量是生物量重量和family = gaussian.
global.model <- lmer(ex.drywght ~ forestloss562*forestloss17*roaddenssec*nearestroadprim +
elevation + soilPC1 + soilPC2 +
(1|block/fragment),
data = RespPredComb,
family = "gaussian")
Predictors have the following units:
forestloss562 = %,
forestloss17 = %,
roaddenssec = (km/km2) and
nearestroadprim = (m).
Run Code Online (Sandbox Code Playgroud)
执行此模型会显示以下警告消息:
警告信息:
1:在glmer中(ex.drywght~forestloss562*forestloss17*roaddenssec*:调用glmer()与family = gaussian(身份链接)作为lmer()的快捷方式不推荐使用;请直接调用lmer()
2:一些预测变量的尺度非常不同:考虑重新缩放
然后我执行这些后续步骤(遵循Grueber等人(2011)中描述的步骤顺序:
我标准化预测因子,
stdz.model <- standardize(global.model, standardize.y = FALSE)
Run Code Online (Sandbox Code Playgroud)
(需要包装arm)
使用自动模型选择和所提供的"全局"模型的子集
model.set <- dredge(stdz.model)
Run Code Online (Sandbox Code Playgroud)
需要包(MuMIn)
在这里,我收到以下警告消息:
Warning message:
In dredge(stdz.model2) : comparing models fitted by …Run Code Online (Sandbox Code Playgroud)