如何使用来自另一个文件 (R) 的数据将数据合并到在 ggplot2 中构建的绘图中?

How to incorporate data into plot which was constructed in ggplot2 using data from another file (R)?

使用数据集,我创建了以下图:

我正在尝试创建以下情节:

具体来说,我试图在第一张图片上加入 Twitter 名称。为此,我有一个数据集,其中包含每个名称和一个对应于轴上的点的值。片段看起来像:

Name             Score
@tedcruz         0.108
@RealBenCarson   0.119

有谁知道如何在我的原始图表(根据不同 CSV 文件中的数据构建)上绘制这些数据(来自一个 CSV 文件)?我感到困惑的原因是因为在 ggplot2 中,您在开始时指定了要使用的数据,所以我不确定如何合并其他数据。

谢谢。

您提出的关于 ggplot 结合数据源绘制不同元素的问题已在 post

中得到解答

现在,我不确定这将如何应用于您的特定数据。在这里,我想向您展示一个可能会帮助您前进的示例。

假设我们有两个 data.frames(见下文)并且我们想要获得与您提供的相似的图。

data1 <- data.frame(list(
  x=seq(-4, 4, 0.1), 
  y=dnorm(x = seq(-4, 4, 0.1))))
data2 <- data.frame(list(
  "name"=c("name1", "name2"), 
  "Score" = c(-1, 1)))

第一步是在第二个 data.frame (data2) 中找到名称的“y”坐​​标。为此,我向 data2 添加了一个 y 列。 y在这里定义为从y的may值到y的最小值的点范围,为了美观space。

range_y = max(data1$y) - min(data1$y)
space_y = range_y * 0.05
data2$y <- seq(from = max(data1$y)-space, to = min(data1$y)+space, length.out = nrow(data2))

然后我们可以使用ggplot()按照一些绘图设计来绘制data1和data2。对于当前示例,我这样做了:

library(ggplot2)
p <- ggplot(data=data1, aes(x=x, y=y)) + 
  geom_point() + # for the data1 just plot the points
  geom_pointrange(data=data2, aes(x=Score, y=y, xmin=Score-0.5, xmax=Score+0.5)) +
  geom_text(data = data2, aes(x = Score, y = y+(range_y*0.05), label=name))
p 

给出了以下情节: