如何使用来自另一个文件 (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
给出了以下情节:
使用数据集,我创建了以下图:
我正在尝试创建以下情节:
具体来说,我试图在第一张图片上加入 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
给出了以下情节: