使用ggplot2和COWPROOT组合打印和重叠几何图元对象
我将总结一下之前在本论坛(,)中提出的一些问题,但在本例中,我将结合我的真实数据集和代码。我被卡住了,需要帮助才能正确地编写代码 让我们从数据集开始。从此处下载并加载它们:使用ggplot2和COWPROOT组合打印和重叠几何图元对象,r,plot,ggplot2,cowplot,R,Plot,Ggplot2,Cowplot,我将总结一下之前在本论坛(,)中提出的一些问题,但在本例中,我将结合我的真实数据集和代码。我被卡住了,需要帮助才能正确地编写代码 让我们从数据集开始。从此处下载并加载它们: perio <- read.csv(url("http://vivaelsoftwarelibre.com/wp-content/uploads/2018/05/perio.csv"), header = TRUE, sep = ",", quote = "\"", dec = ".") pk <- rea
perio <- read.csv(url("http://vivaelsoftwarelibre.com/wp-content/uploads/2018/05/perio.csv"), header = TRUE, sep = ",", quote = "\"", dec = ".")
pk <- read.csv(url("http://vivaelsoftwarelibre.com/wp-content/uploads/2018/05/pk.csv"), header = TRUE, sep = ",", quote = "\"", dec = ".")
现在,我用直方图、密度和几何体对象分别绘制它们,考虑组(A、B)
因此:
我想要什么?
记住最后一张图片,我需要纠正几个问题,以获得完美的情节:
- 使用
完美对齐两个图的轴。您可以在左上角和右下角看到轴是如何未对齐的。所以我希望它们形成一个完整的、统一的矩形cowplot
- 我想表示95置信限,但只显示两个图的重叠区域。因此,只有两个重叠的矩形可能出现在图表的大致中心,一个用于A组,一个用于B组。垂直杆和水平杆必须消失李>
- 我希望前面的矩形是
,这样两者之间的重叠区域就很明显了alpha=.5
- 前面的每个矩形必须保留每组的颜色:A(红色)和B(蓝色)
- 为了便于解释,我想删除一个图例并替换另一个
- 我希望前面的矩形是
我真诚地感谢你的帮助。希望R编码专家能帮助我 我不完全清楚您希望矩形最终看起来如何,但是您可以使用cowplot中的
align\u plots
函数来对齐。文档中的示例非常有用。您的矩形被绘制了很多次,因此,例如,向这些层添加inherit.aes=FALSE
,以获得透明度。有关共享传奇的信息,请参阅。嗨@aosmith,谢谢您的评论。我编辑了这个问题,在最后添加了一个手动编辑的绘图,使用Inkscape和使用R编码的预期绘图。希望你能帮助我。。。我将非常感谢你的帮助!您需要按照以下示例代码所示对齐绘图:
# Calculate mean, sd and length in pk by Comparison
mean_pk <- aggregate(pk[, 1], list(Type=pk$Comparison), mean)
sd_pk <- aggregate(pk[, 1], list(Type=pk$Comparison), sd)
length_pk <- aggregate(pk[, 1], list(Type=pk$Comparison), length)
# 95 confidence limits of pk by Comparison (A and B)
CL_A_pk <- qnorm(0.975)*sd_pk[1,2]/sqrt(length_pk[1,2])
CL_A_pk_lw <- mean_pk[1,2] - CL_A_pk
CL_A_pk_up <- mean_pk[1,2] + CL_A_pk
CL_B_pk <- qnorm(0.975)*sd_pk[2,2]/sqrt(length_pk[2,2])
CL_B_pk_lw <- mean_pk[2,2] - CL_B_pk
CL_B_pk_up <- mean_pk[2,2] + CL_B_pk
# Calculate mean, sd and length in perio by Site
mean_perio <- aggregate(perio[, 2], list(Type=perio$Site), mean)
sd_perio <- aggregate(perio[, 2], list(Type=perio$Site), sd)
length_perio <- aggregate(perio[, 2], list(Type=perio$Site), length)
# 95 confidence limits of pk by Site (A and B)
CL_A_perio <- qnorm(0.975)*sd_perio[1,2]/sqrt(length_perio[1,2])
CL_A_perio_lw <- mean_perio[1,2] - CL_A_perio
CL_A_perio_up <- mean_perio[1,2] + CL_A_perio
CL_B_perio <- qnorm(0.975)*sd_perio[2,2]/sqrt(length_perio[2,2])
CL_B_perio_lw <- mean_perio[2,2] - CL_B_perio
CL_B_perio_up <- mean_perio[2,2] + CL_B_perio
# ggplot histogram of pk
library(ggplot2)
dif_pk <- ggplot(pk, aes(x=Count, color=Comparison, fill=Comparison)) +
geom_density(alpha=0.25) +
geom_histogram(aes(y=..density..), alpha=0.25) +
geom_rect(aes(xmin=CL_A_pk_lw, xmax=CL_A_pk_up, ymin=0, ymax=0.3), alpha = 0.5, colour = "darkred", fill = "red") +
geom_rect(aes(xmin=CL_B_pk_lw, xmax=CL_B_pk_up, ymin=0, ymax=0.3), colour = "darkblue", fill = "blue", alpha = 0.5) +
geom_vline(aes(xintercept=0), lwd=0.5, lty=2) +
theme_minimal() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black")) +
lims(x=c(-50, 50), y=c(0,0.3))
# ggplot histogram of perio
library(ggplot2)
dif_perio <- ggplot(perio, aes(x=vsSAP, color=Site, fill=Site)) +
geom_density(alpha=0.25, kernel = "gaussian", adjust = 2) +
geom_histogram(aes(y=..density..), alpha=0.25) +
geom_rect(aes(xmin=CL_A_perio_lw, xmax=CL_A_perio_up, ymin=0, ymax=2, alpha=0.5), colour = "darkblue", fill = "blue", alpha =0.5) +
geom_rect(aes(xmin=CL_B_perio_lw, xmax=CL_B_perio_up, ymin=0, ymax=2, alpha=0.5), colour = "darkred", fill = "red", alpha =0.5) +
geom_vline(aes(xintercept=0), lwd=0.5, lty=2) +
theme_minimal() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black")) +
scale_x_continuous(position = "top", limits = c(-75, 20)) +
scale_y_reverse(position = "right",limits = c(2,0)) +
coord_flip()
library(cowplot)
ggdraw(dif_pk) +
draw_plot(dif_perio)