使用 R 制作两个组的自定义森林图

Making a customized forest plot of two groups using R

我真的很想用 R 绘制这样的图。我已经尝试使用 metafor 包中的 forest() 命令,但似乎无法创建任何可比较的东西。我还有两组、多个分类变量和百分比 - 基本上,与此图中显示的数据类型完全相同。谁能给我一些关于如何使用 R 解决问题的建议?

您可以尝试使用 ggplot,这只是两个组的示例:

library(ggplot2)
data<-data.frame(type=c("Music","Physics","Music","Physics"),gender=c("Male","Male","Female","Female"),val=c(10,20,30,40))
ggplot(data,aes(x=val,y=type,color=gender))+geom_point(size=3)+theme_bw()

凭直觉使用这些颜色让我建议使用完全使用这两种颜色的 ggvis 包(默认情况下,但显然您可以更改它们)来执行此操作:

看下面的例子:

数据

y <- letters[1:10]
x <- runif(10)
gender <- rep(c('male','female'),5)
df <- data.frame(y,x,gender)

解决方案

library(ggvis)
df %>% ggvis(x= ~x, y= ~y, fill= ~gender) %>% layer_points()

编辑

如果您需要删除网格线以显示与您发布的图表完全相同的内容,您可以执行以下操作:

df %>% ggvis(x= ~x, y= ~y, fill= ~gender) %>% layer_points() %>%
  add_axis('x', properties= axis_props( grid = list(stroke = 'blank') )) %>%
  add_axis('y', properties= axis_props( grid = list(stroke = 'blank') ))