我用我的数据创建了多个条形图stat_summary.但是,我想手动指定错误栏的限制(而不是使用mean_cl_boot).如何使用图表绘制数据facet_grid?
我用来创建图表的代码如下:
graph <- ggplot(slantclean, aes(x = View,value, fill = Texture))
graph + stat_summary(fun.y = mean, geom = "bar", position = "dodge") +
stat_summary(fun.data = mean_cl_boot, geom = "pointrange",
position = position_dodge(width = 0.90)) +
labs(x = "View", y = "Vertical height of ellipse (cm)", fill = "Texture") +
facet_grid( Shape ~ TNOGroup)
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个带有边际直方图的散点图,如这个问题。我的数据是两个(数字)变量,它们共享七个离散(某种程度上)对数间隔的水平。
ggMarginal我已经在包中的帮助下成功完成了此操作ggExtra,但是我对结果不满意,因为当使用与散点图相同的数据绘制边际直方图时,事情并不一致。如下所示,直方图条稍微偏向数据点本身的右侧或左侧。
library(ggMarginal)
library(ggplot2)
x <- rep(log10(c(1,2,3,4,5,6,7)), times=c(3,7,12,18,12,7,3))
y <- rep(log10(c(1,2,3,4,5,6,7)), times=c(3,1,13,28,13,1,3))
d <- data.frame("x" = x,"y" = y)
p1 <- ggMarginal(ggplot(d, aes(x,y)) + geom_point() + theme_bw(), type = "histogram")
Run Code Online (Sandbox Code Playgroud)
一个可能的解决方案是将直方图中使用的变量更改为因子,以便它们与散点图轴很好地对齐。使用以下命令创建直方图时效果很好ggplot:
p2 <- ggplot(data.frame(lapply(d, as.factor)), aes(x = x)) + geom_histogram()
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用 执行此操作时ggMarginal,我没有得到所需的结果 -ggMarginal直方图似乎仍然将我的变量视为数字。
p3 <- ggMarginal(ggplot(d, aes(x,y)) + geom_point() + theme_bw(),
x = as.factor(x), y = as.factor(y), type = "histogram")
Run Code Online (Sandbox Code Playgroud)
如何确保我的直方图条形图位于数据点的中心?
我绝对愿意接受不涉及使用的答案ggMarginal。
我已尝试使用内置数据集重现此问题,但它只发生在我自己的数据集中.
如果我们采用我的数据的随机子集:
structure(list(ID = structure(c(27L, 1L, 27L, 7L, 5L, 10L, 23L,
19L, 21L, 26L), .Label = c("AC ", "AJ ", "AT ", "AWY", "BP ",
"BW ", "CA ", "CK ", "CS ", "DJ ", "EN ", "ES ", "HF ", "HG ",
"HL ", "HR ", "IP ", "JA ", "JG ", "JN ", "KB ", "KP ", "MJ ",
"PC ", "RFH", "RPA", "SB ", "SG ", "TM "), class = "factor"),
TNO = c(30L, 60L, 30L, 10000L, …Run Code Online (Sandbox Code Playgroud) 我有一个字符向量R,每个元素都包含一个字符串 - 让我们使用这个例子:
my.files <- c("AWCallibration#NoneBino-3", "AWExperiment1#NoneBino-1", "AWExperiment2#NonemonL-2"
)
Run Code Online (Sandbox Code Playgroud)
我想从这些字符串中提取某些信息 -
"AW")"Callibration")还是数据收集 - 如果是后者,使用了哪种条件("Experiment1"或"Experiment2")"Bino"或"monL")中使用了哪个子条件"1"或"2")我首先尝试使用strsplit,但这似乎只适用于具有常规分隔符的情况,例如"_".substring似乎更适合我的需要,但实际上没有工作,因为分裂不会发生在常规的地方("Experiment1"十一个元素长,"Callibration"十二个).
我怀疑使用正则表达式可能就是答案,但我不知道如何解释分割之间的不同长度.