r - 如何在 ggplot2 折线图中制作半线?
问题描述
我在 R 方面的进展非常缓慢,但现在我可以做一些事情了。
现在,我在一张图中绘制了 4 种处理对植物生长的影响。如您所见,误差条重叠,这就是我将它们设为不同颜色的原因。我认为为了使图表更清晰,最好将下部误差条用作下部 2 行的“半胡须”,将上部误差条用作顶部两行(就像我现在一样),请参阅附图以供参考
我的脚本现在设置的方式可行吗?
这是我的情节脚本的一部分,我还有更多,但这是我指定情节本身的地方(省略了美学和东西),在此先感谢:
“soda1”是我更改的数据框,以清晰的方式设置,“sdtv”是我每个时间点/治疗的标准偏差,“oppervlak”是我的 y 变量,“Measuring Date”是我的 x 变量。“Tray ID”是处理,所以我的分组变量。
p <- ggplot(soda1, aes(x=reorder(`Measuring Date`, oppervlak), y=`oppervlak`, group=`Tray ID`, fill=`Tray ID`, colour = `Tray ID` )) +
scale_fill_brewer(palette = "Spectral") +
geom_errorbar(data=soda1, mapping=aes(ymin=oppervlak, ymax=oppervlak+sdtv, group=`Tray ID`), width=0.1) +
geom_line(aes(linetype=`Tray ID`)) +
geom_point(mapping=aes(x=`Measuring Date`, y=oppervlak, shape=`Tray ID`))
print(p)
解决方案
仅显示误差条的一侧可以隐藏两个或多个变量或测量值分布之间的不确定性重叠。除了隐藏这种重叠之外,您还可以通过添加position=position_dodge(width=)
对geom_errorbar()
.
例如:
library(ggplot2)
# some random data with two factors
df <- data.frame(a=rep(1:10, times=2),
b=runif(20),
treat=as.factor(rep(c(0,1), each=10)),
errormax=runif(20),
errormin=runif(20))
# plotting both sides of the errorbars, but dodging them horizontally
p <- ggplot(data=df, aes(x=a, y=b, colour=treat)) +
geom_line() +
geom_errorbar(data=df, aes(ymin=b-errormin, ymax=b+errormax),
position=position_dodge(width=0.25))
推荐阅读
- vba - 迭代EMA公式VBA
- math - 最大收益的线性规划算法
- django - 来自 Post 的 Django 查询
- python - 将整个函数作为字符串 / 并将字符串转换为函数?
- swift - 无法使用 ViewModel 加载数据
- scala - 当状态满足某些条件时如何停止状态转换?
- ruby-on-rails - Heroku 拒绝来自 Ruby on Rails 应用程序的推送
- vba - VBLOOKUP 和 MATCH 识别列中的问题
- django - Django rest 框架 serializer.errors 输出 ["This field is required."] 与 multipart/form-data 发布请求
- node.js - SAP 全栈 Web IDE 构建错误