我在R中使用plotly,尽管我认为这并不重要。基本上,我想绘制一组与函数不对应的点的线图(在数学意义上)。请参阅下面的代码作为一个简单的示例,我认为问题很明显。我希望第二个图看起来像第一个图在x / y轴上倒置。
为了澄清,下面的示例可以通过使用逆函数(平方根)来解决,但我正在寻找一种不依赖于具有显式可逆函数的通用解决方案。
library(plotly)
library(magrittr)
x <- seq(from=-2, to=2, length.out = 200)
y <- x^2
p1 <- plot_ly() %>%
add_lines(x=x, y=y)
p2 <- plot_ly() %>%
add_lines(x=y, y=x)
我真的认为这将完全取决于您的数据集的细节。在数据样本中,每个y都有一个唯一的x值。您的第二个图形失败的原因(从某种意义上说,您没有获得一条平滑的连续线)是因为您在x轴上不再拥有唯一值,而在y轴上不再具有唯一值。要获得您似乎正在使用此特定数据集寻找的visual结果,可以将y轴的正数和负数分开并应用两条迹线:
完整代码:
library(plotly)
library(magrittr)
x <- seq(from=-2, to=2, length.out = 200)
y <- x^2
df1 = data.frame(x1=x,
y1=y
)
df2 <- filter(df1, x1 <= 0)
df3 <- filter(df1, x1 > 0)
p1 <- plot_ly() %>%
add_lines(data=df2, x=~y1 , y=~x1, line = list(color = '#636EFA', width = 1.5))
p1 <- p1 %>% add_lines(data=df3, x=~y1 , y=~x1, line = list(color = '#636EFA', width = 1.5))
p1