我有点挣扎于,我使用它作为输入。我有一个dataframe A
,如下所示:
x y
1 0 50.825022
2 1 44.154257
3 0 50.116500
4 1 46.027000
5 0 55.905105
6 1 50.753209
7 0 44.804500
8 1 42.894000
9 0 15.030799
10 1 11.881330
11 0 21.456833
12 1 18.942833
13 0 5.664676
14 1 3.350577
我如何手动引用我的数据框架中的特定单元,告诉ggplot2,我想要绘制一个点,例如,用A1,1作为我的x-值(x=0)和a 1,2作为我的y-值(y=50.825002),然后再用A2,1作为我的x-值(x=1)和A2-2作为我的y-值(y=44.154257),然后将这两个点与一条线连接起来。
这样做的目的是获得这样的地块:
如果有人能给我暗示一下ggplot2
的诀窍,我会非常感激的。
如果需要,下面是要复制和粘贴的数据文件:
structure(list(x = c(0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L,
0L, 1L, 0L, 1L), y = c(50.8250223621947, 44.1542573925467, 50.1165,
46.027, 55.9051046135438, 50.753208962261, 44.8045, 42.894, 15.0307991170913,
11.8813302333097, 21.4568333333333, 18.9428333333333, 5.66467592950172,
3.35057697360927)), .Names = c("x", "y"), class = "data.frame", row.names = c(NA,
-14L))
发布于 2018-08-03 00:38:37
如果要动态提供两点,则可以创建一个函数,这将对这些行和绘图进行子集。
library(ggplot2)
plot_two_points <- function(row1, row2) {
temp = rbind(df[row1,], df[row2,])
ggplot(temp, aes(x, y, label = y)) + geom_point() + geom_line() +
geom_label(nudge_x = 0.05, nudge_y = 0.15)
}
调用要显示哪些行的函数
plot_two_points(3, 4)
发布于 2018-08-03 00:34:52
要使用ggplot2
简单地绘制点,可以使用以下方法:
library(ggplot2)
ggplot(A, aes(factor(x), y)) +
geom_point()
这里我们把x
放在x轴上,y
放在y轴上.我们使用的是factor
,因为x
是一个分类变量。
如果我们需要连接i
和i+1
,就必须向数据中添加分组变量。我们可以这样做:
From 1 to half of the rows repeat integer twice
A$ID <- rep(1:(nrow(A) / 2), each = 2)
# Returns:
# [1] 1 1 2 2 3 3 4 4 5 5 6 6 7 7
要在点之间添加行,我们可以使用geom_path
并指定分组变量ID
。
ggplot(A, aes(x, y, group = ID)) +
geom_point() +
geom_line()
https://stackoverflow.com/questions/51668280
复制相似问题