如何使用Plotly绘制非功能线图?

问题描述 投票:0回答:1

我在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)

enter image description here

enter image description here

plotly
1个回答
1
投票

我真的认为这将完全取决于您的数据集的细节。在数据样本中,每个y都有一个唯一的x值。您的第二个图形失败的原因(从某种意义上说,您没有获得一条平滑的连续线)是因为您在x轴上不再拥有唯一值,而在y轴上不再具有唯一值。要获得您似乎正在使用此特定数据集寻找的visual结果,可以将y轴的正数和负数分开并应用两条迹线:

enter image description here

完整代码:

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
© www.soinside.com 2019 - 2024. All rights reserved.