Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
R 尝试使用ggplot2绘制类似于出版物中的图形_R_Ggplot2 - Fatal编程技术网

R 尝试使用ggplot2绘制类似于出版物中的图形

R 尝试使用ggplot2绘制类似于出版物中的图形,r,ggplot2,R,Ggplot2,我正在尝试生成一个图,它看起来像这个图的第三部分/底部部分(其中法语/撒丁语表示Y,其他表示X) 我知道我需要使用ggplot2生成这些,但我不知道如何生成。我想知道是否有人能帮忙 这是我的基本代码 tbl$RegionX2 <- factor(tbl$RegionX, as.character(tbl$RegionX)) plot <- ggplot(tbl, aes(y = RegionX2, x = D, xmin = D - 2*SE, xmax

我正在尝试生成一个图,它看起来像这个图的第三部分/底部部分(其中法语/撒丁语表示Y,其他表示X)

我知道我需要使用ggplot2生成这些,但我不知道如何生成。我想知道是否有人能帮忙

这是我的基本代码

tbl$RegionX2 <- factor(tbl$RegionX, as.character(tbl$RegionX))
plot <- ggplot(tbl, aes(y = RegionX2, 
            x = D, xmin = D - 2*SE, xmax = D + 2*SE, label = RegionX2, colour = RegionY)) + 
    geom_point(colour = "black") + 
  geom_text(hjust = 1.2) + 
  theme_classic() + 
  theme(axis.title = element_blank(),
        axis.ticks = element_blank(), 
        axis.text.y = element_blank(), 
        legend.position = "none") + 
  geom_errorbarh(height = 0)
ggsave(plot=plot,height=7,width=7, filename="D.pdf", useDingbats=FALSE)

现在还不太清楚你打算实现什么,但是在看了链接中你的预期数字之后,这里是我能够制作的东西。希望这是有帮助的

首先,我使用RegionY和RegionX创建了一个新列,以便在Y轴上放置唯一的因子。这是如何做到的
tbl
是数据集中的数据帧

tbl$X <- paste0(tbl$RegionY,tbl$RegionX)
下图

如果你需要更多的信息,请在评论中告诉我,这样我可以更新答案

tbl$X <- paste0(tbl$RegionY,tbl$RegionX)
tbl$X <- as.factor(tbl$X)
  ggplot(tbl, aes(y = X,x = D,fill=RegionY)) + 
  geom_point(shape=21) + 
  scale_y_discrete(limits=rev(levels(tbl$X)),label=rev(substring(tbl$X,1,1))) + 
  geom_vline(xintercept = 0) +
  geom_text(aes(label=tbl$RegionX,colour=RegionY),x=0.02) + 
  scale_x_continuous(limits = c(-0.04,0.025)) + 
  geom_errorbarh(aes(xmin = D - 2*SE, xmax = D + 2*SE,colour=RegionY),height=0.4) +
  theme_classic() + 
  theme(axis.title = element_blank(),
        axis.ticks = element_blank(),
        axis.text.y = element_blank(),
        legend.position = "none")