Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ggplot2和COWPROOT组合打印和重叠几何图元对象_R_Plot_Ggplot2_Cowplot - Fatal编程技术网

使用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(蓝色)
  • 为了便于解释,我想删除一个图例并替换另一个
矩形应该类似于使用Inkscape手动完成的矩形:


我真诚地感谢你的帮助。希望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)