等高线图添加线

时间:2019-01-21 12:45:33

标签: r plotly

我正在尝试向轮廓图添加y=1处的水平线和x=1处的垂直线,该怎么做?

我的代码如下所示:

library(plotly)
library("mvtnorm")

cov=matrix(c(2,1,1,2),2,2)

x1=seq(-4,4,by=0.1)
x2=seq(-4,4,by=0.1)

d<-expand.grid(x1,x2)

z=dmvnorm(as.matrix(d),sigma=cov)

plot_ly(x=d[,1],y=d[,2],z=z,type="contour")

2 个答案:

答案 0 :(得分:2)

您可以使用

plot_ly(x = d[, 1], y = d[, 2], z = ~z, type = "contour") %>%
  add_segments(x = 1, xend = 1, y = -4, yend = 4, inherit = FALSE) %>%
  add_segments(x = -4, xend = 4, y = 1, yend = 1, inherit = FALSE) %>%
  layout(xaxis = list(range = c(-4, 4)),
         yaxis = list(range = c(-4, 4)))

enter image description here

我添加了inherit = FALSE以避免警告,而layout部分则修复了x轴。

答案 1 :(得分:1)

有两种可能性。

第一个与add_segments一起使用,另一个与layout一起使用:

  1. 带有添加段

    plot_ly(x=d[,1],y=d[,2],z=z,type="contour")%>%
        add_segments(x = 0, xend = 0, y = -4, yend = 4)%>%
        add_segments(x = -4, xend = 4, y = 0, yend = 0)
    
  2. 布局:

    plot_ly(x=d[,1],y=d[,2],z=z,type="contour")%>%
        layout(shapes=list(type="line", x0=0, x1=0, y0=-4, y1=4))%>%
        layout(shapes=list(type="line", x0=-4, x1=4, y0=0, y1=0))%>
    

对于改变颜色或类似的东西,我建议使用plot.ly的文档