Reputation: 21
Using r, I'm trying to find (1) How do I add gridlines to this contour plot example using the Plot_ly function in r? (2) How do I control the number of tick intervals between gridlines?
x1 <- -10:10
y1 <- -10:10
z1 <- sqrt(outer(x1 ^ 2, y1 ^ 2, "+"))
fig <- plot_ly(z = z1, x = x1, y = y1, type = "contour",
line = list(width = 1.5, color = "black"),
contours = list(showlabels = TRUE))
fig
Upvotes: 1
Views: 490
Reputation: 21
Thank you all for your help. Much appreciated. Below I document the full answer.
rm(list=ls(all=TRUE))
library(plotly)
x1 <- -10:10
y1 <- -10:10
z1 <- sqrt(outer(x1 ^ 2, y1 ^ 2, "+"))
fig <- plot_ly(z = z1, x = x1, y = y1, type = "contour",
line = list(width = 1.5, color = "black"),
contours = list(showlabels = TRUE))
fig
# adding cartesian horizontal grid lines
hlines <- function(y = 0, color = "white") {
list(type = "line",
x0 = 0, x1 = 1, xref = "paper", y0 = y, y1 = y,
line = list(color = color, width = 0.5))
}
fig$x$layout$shapes <- lapply(-10:10, hlines)
fig
#Add vertical lines
vlines <- function(x = 0, color = "white") {
list(type = "line",
y0 = 0, y1 = 1, yref = "paper", x0 = x, x1 = x,
line = list(color = color, width = 0.5))
}
fig$x$layout$shapes[22:42] <- lapply(-10:10, vlines)
fig
Upvotes: 1
Reputation: 18714
Plotly is always going to put the traces on top of the grid lines, so it doesn't matter what you do with the grid lines when the entire plot is filled in.
Alternatively, you can use shapes
to mimic grid lines.
Here is an example with simulated gridlines for the y-axis.
hlines <- function(y = 0, color = "white") {
list(type = "line",
x0 = 0, x1 = 1, xref = "paper", y0 = y, y1 = y,
line = list(color = color, width = 1))
}
fig$x$layout$shapes <- lapply(-10:10, hlines)
fig
Upvotes: 2