首页 > 解决方案 > 使用 Plotly 在等高线图上叠加线

问题描述

我想在 Plotly 等高线图的顶部覆盖一条线,类似于在强度表示z内部位置的矩阵图像上覆盖一条线R3

# Generate an arbitrary matrix
m <- matrix(sin(1:6^2) * 1:6, nrow = 6)

# Define a path
path <- data.frame(x = c(0:7), y = c(0, 1, 2, 2, 3, 3, 4, 6))

image(x = 1:6, y = 1:6, z = m, col = gray.colors(20), xlab = "x", ylab = "y")
lines(path$x, path$y)

呈现:

线图和矩阵图

使用 Plotly,我尝试过

library(plotly)
plot_ly(x = 1:6, y = 1:6, z = t(m), type = "contour") %>% 
  add_lines(x = path$x, y = path$y)

这会生成一个等高线图,上面覆盖着空白线框R3而不是一条线:

在此处输入图像描述

标签: rplotlyr-plotly

解决方案


你可以试试这个:

plot_ly(x = 1:6, y = 1:6, z = t(m), type = "contour") %>% 
  add_trace(x = c(1, 2, 3, 4, 5, 6), y = c(1, 2, 3, 3, 4, 5), type = "scatter", mode = "line")

它几乎可以满足您的需求。希望能帮助到你!

在此处输入图像描述


推荐阅读