我正在尝试覆盖两个相似的图形,但是一个图形带有“翻转坐标”,彼此重叠。
我想画一个对称问题的“最佳响应”功能。因此,对于两个图,我具有相同的数据框,只是需要翻转一个。
添加coord_flip()
将翻转“两个图”的坐标。
请考虑以下数据:
df1 <- data.frame(
x=c(0.000, 0.111, 0.222, 0.333, 0.444, 0.556, 0.667, 0.778, 0.889, 1.000),
y=c(0.222, 0.111, 0.111, 0.000, 0.000, 1.000, 1.000, 0.889, 0.889, 0.778)
)
我想做这张图,红线只是黑线翻转:
以下代码
ggplot(df1)+
geom_line(aes(x,y),color="black")+
geom_line(aes(y,x),color="red")
结果就是这样,这不是我想要的。
答案 0 :(得分:1)
在按所需顺序对数据集的行进行排序之后,可以将geom_path
而不是geom_line
用于翻转线。来自?geom_path
:
geom_path()
将观察结果按其顺序连接 出现在数据中。geom_line()
按以下顺序连接它们 x轴上的变量。
library(dplyr)
df1 %>%
arrange(x, y) %>%
ggplot()+
geom_line(aes(x, y), color = "black")+
geom_path(aes(y, x), color = "red")
答案 1 :(得分:0)
这就是我的做法。
library(ggplot2)
df1 <- data.frame(x = seq(2, 8, by = 2),
y = seq(30, 15, by = -5))
ggplot(df1)+
geom_line(aes(x,log(y)),color="black")+
geom_line(aes(log(y),x),color="red")