簡體   English   中英

覆蓋兩個圖,一個帶有翻轉坐標,ggplot

[英]overlaying two plots, one with flipped coordinates, ggplot

我試圖疊加兩個相似的圖形,但一個帶有“翻轉坐標”,彼此重疊。

我想繪制對稱問題的“最佳響應”函數。 所以我有兩個圖形的相同數據框,只是需要翻轉一個。

添加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")

結果在這,這不是我要找的。

實際結果

在按所需順序對數據集的行進行排序后,您可以使用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")

陰謀

這是我如何做到的。

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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM