问题描述
我正在尝试绘制等高线图,并在其上方绘制一条线(我可以这样做)。然后,我使用add_trace覆盖了其他两行。由于某些原因,即使我指定了灰色,我使用add_trace添加的两行也会显示为橙色而不是灰色(line = list(color ='grey',)
我不知道如何添加数据,这非常大。颜色为什么变为橙色有明显的原因吗?如果更改宽度或破折号,则可以使用。只是不想使用灰色!
谢谢
(plot <- plot_ly(df,x = ~A,y = ~B,z = ~Difference,zauto = FALSE,zmin = -250,zmax = 250,type="contour",colorbar = list(title = "",titleside='right',tickvals=c(-250,-200,-150,-100,-50,50,100,150,200,250),len = 1),colorscale = "RdBu",contours = list(start = 0,end = 0,coloring='heatmap',coloring='lines'),line = list(color = 'black',width = 2)) %>%
add_trace(z = df$C,showscale = FALSE,line = list(color = 'grey',width = 2,dash = 'dash'),coloring='lines')) %>%
add_trace(z = df$C,dash = 'solid'),coloring='lines')) %>%
layout(margin = list(l = 50,r = 70,b = 50,t = 50,pad = 4),title = "",xaxis = x,yaxis = list(title = ""),font=t))
解决方法
我想您上面的代码中的问题是,您没有指定跟踪类型。因此,plot_ly
假设您要再添加两条轮廓线。这些痕迹继承了您定义的色标。
为避免这种情况,您需要指定type = "scatter",mode = "lines",inherit = FALSE
。
我基于this做了一个简单的例子。
library(plotly)
fig <- plot_ly(
x = c(-9,-6,-5,-3,-1),y = c(0,1,4,5,7),z = matrix(c(10,10.625,12.5,15.625,20,5.625,6.25,8.125,11.25,2.5,3.125,0.625,1.25,10),nrow = 5,ncol = 5),type = "contour",colorbar = list(title = "",titleside='right'),colorscale = "RdBu",line = list(color = 'black',width = 2)) %>%
add_trace(x = -1:-7,y = 1:7,type = "scatter",line = list(color = 'lightgreen',width = 2,dash = 'solid'),inherit = FALSE)
fig