r - ggplot2 geom_errorbar 具有不同的线型但具有实心须
问题描述
我正在用不同的线型制作误差线图
library(ggplot2)
library(plyr)
# Create dataset:
DF <- data.frame(
group = rep(c("a", "b", "c", "d"),each=10),
Ydata = c(seq(1,10,1),seq(5,50,5),seq(20,11,-1),seq(0.3,3,0.3)),
Xdata = c(seq(1,10,1),seq(5,50,5),seq(20,11,-1),seq(0.3,3,0.3)))
# Summarise data:
subDF <- ddply(DF, .(group), summarise,
X = mean(Xdata), Y = mean(Ydata),
X_sd = sd(Xdata, na.rm = T), Y_sd = sd(Ydata))
# Plot data with error bars:
ggplot(subDF, aes(x = X, y = Y,linetype = group)) +
geom_errorbar(aes(x = X,
ymin = (Y-Y_sd),
ymax = (Y+Y_sd)),
width = 1, size = 0.5) +
geom_point(cex = 3) +
scale_linetype_manual(values = c("solid","twodash","longdash","longdash"))
这给了我以下情节,但我希望末端胡须是实心的。任何人都可以帮忙吗?
解决方案
实现所需结果的一种选择是geom_linerange
通过如下方式切换并添加胡须geom_segment
:
library(ggplot2)
width <- .3
# Plot data with error bars:
ggplot(subDF, aes(x = X, y = Y, linetype = group)) +
geom_segment(aes(
x = X - width, xend = X + width,
y = Y - Y_sd, yend = Y - Y_sd
),
size = 0.5, linetype = "solid"
) +
geom_segment(aes(
x = X - width, xend = X + width,
y = Y + Y_sd, yend = Y + Y_sd
),
size = 0.5, linetype = "solid"
) +
geom_linerange(aes(
x = X,
ymin = (Y - Y_sd),
ymax = (Y + Y_sd)
),
size = 0.5
) +
geom_point(cex = 3) +
scale_linetype_manual(values = c("solid", "twodash", "longdash", "longdash"))
推荐阅读
- react-native - ReactNative:导航选项不起作用
- swift - NSTableColumn 使用 Core Data 字典排序
- android - 有没有办法在绑定适配器函数中使用存储库或视图模型对象?
- python - pandas 按所有值小于特定数字的列值分组,并将组号分配为新列
- css - 用动画向左展开 div 会导致“抖动”
- python - 当 IP 用作 ARP 数据包中的范围时,Scapy 不起作用
- java - java - 当Json数据在没有db的情况下在java play框架中进入postman时如何增加id值?任何人都可以帮助如何生成 id 值
- r - 合并 purrr::map 中的函数
- javascript - Visual Studio 和 Visual Studio 代码,“转到定义”不适用于带有 index.d.ts 文件的第三方 javascript 模块
- c++ - 我应该安装 .cmake 文件来共享/cmake 还是 lib/cmake?