mean_math mean_read mean_science country
    1   -4.1976624 30.971633   -1.9381413     AUS
    2   -4.0193006 30.542376    8.7161472     CAN
    3  -21.8172403  9.638434  -14.6299379     COL
    4   -8.6399967 25.467815   -0.6883553     DEU
    5    5.4746023 53.493446   22.4550453     FIN
    6   -0.0951738 39.918658   12.1398932     GRC
    7   14.1162251 27.930612    8.2923826     IDN
    8    6.4402359 45.649534   17.5006916     ISR
    9   -6.4779173 20.323509   -8.1990175     KOR
    10  -1.0302412 26.280249   11.1133112     MAR
    11   7.5553361 25.145138    6.7470357     MYS
    12   0.1138526 30.203776    8.6622651     NLD
    13  -0.7025857 32.751286   -0.4696149     POL
    14  21.4963288 64.712999   41.3613420     QAT
    15  -5.9149028 22.572479   -2.8969491     SGP    

Dataframe diff看起来就像上面的结果.

diff %>%
tidyr::pivot_longer(-country) %>% 
  ggplot(aes(value, country, color = value > 0)) + 
  geom_point() + 
  labs(x = "diff", y = "country", colour = "diff > 0") +
  facet_wrap(~name, scales = "free_x") +
  coord_cartesian(xlim = c( -100, 100))

上面的代码就是我所做的.结果如下图所示.

result1

我想添加一些代码,使我的图表如下所示

result2

我想在每个图上画一些线条,比如"Result2"图.->(已整理)

另外,对于x_Scale,我如何删除-100,100.

谢谢

推荐答案

library(tidyr)
library(ggplot2)


diff %>%
  tidyr::pivot_longer(-country) %>% 
  ggplot(aes(value, country, color = value > 0)) + 
  geom_point() + 
  labs(x = "diff", 
       y = "country", 
       colour = "diff > 0") +
  geom_vline(xintercept= 0) + 
  scale_x_continuous(breaks = c(-50, 0, 50))+
  annotate("text", x = -100, y = 1, label = "Boys", hjust = -0.1)+
  annotate("text", x = 100, y = 1, label = "Girls", hjust = 1.1)+
  facet_wrap(~name, scales = "free_x") +
  coord_cartesian(xlim = c( -100, 100))+
  theme(legend.position = "none")

data

diff <- data.frame(mean_math = c(-4.1976624, -4.0193006, -21.8172403, 
                                  -8.6399967, 5.4746023, -0.0951738, 14.1162251, 6.4402359, -6.4779173, 
                                  -1.0302412, 7.5553361, 0.1138526, -0.7025857, 21.4963288, -5.9149028),
                   mean_read = c(30.971633, 30.542376, 9.638434, 25.467815, 53.493446, 
                                 39.918658, 27.930612, 45.649534, 20.323509, 26.280249, 25.145138, 
                                 30.203776, 32.751286, 64.712999, 22.572479),
                   mean_science = c(-1.9381413, 8.7161472, -14.6299379, -0.6883553, 22.4550453, 12.1398932, 8.2923826, 
                                    17.5006916, -8.1990175, 11.1133112, 6.7470357, 8.6622651, -0.4696149, 
                                    41.361342, -2.8969491), 
                   country = c("AUS", "CAN", "COL", "DEU","FIN", "GRC", "IDN", 
                               "ISR", "KOR", "MAR", "MYS", "NLD", "POL",  "QAT", "SGP"))

创建于2022-09-28,共reprex v2.0.2

R相关问答推荐

R Markdown中的交叉引用表

查找图下的面积

为什么观察不会被无功值变化触发?

R中插入符号训练函数的中心因子和尺度因子预测

如何从R ggplot图片中获取SVG字符串?

在rpart. plot或fancyRpartPlot中使用带有下标的希腊字母作为标签?

绘制采样开始和采样结束之间的事件

哪一行和行和 Select 特定行,但是考虑到Nas

有没有办法使用ggText,<;Sub>;&;<;sup>;将上标和下标添加到同一元素?

如何在ggplot2中绘制具有特定 colored颜色 的连续色轮

R中有约束的优化问题:如何用复数和对数效益函数解决问题?

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

如何平滑或忽略R中变量的微小变化?

提高圣彼得堡模拟的速度

如何筛选截止年份之前最后一个测量年度的所有观测值以及截止年份之后所有年份的所有观测值

创建在文本字符串中发现两个不同关键字的实例的数据框

计算Mean by分组和绑定到R中的数据集

TidyVerse中长度不等的列结合向量

如何创建直方图与对齐的每月箱?

对数据帧中的列进行子集设置以通过迭代创建新的数据帧