等高线图添加线条

3
我正在尝试在我的等高线图中添加一条 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个回答

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

这有两种可能性。

第一种是使用add_segments,另一种是使用layout

  1. with add_segments

    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. with layout:

    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的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接