R语言中Plotly如何解决色条与图例重叠问题?
解决R中Plotly色条图例重叠问题
你的代码里,surface和scatter3d两个图层各自生成了色条,默认位置都在图表右侧,所以出现了重叠。解决核心是给两个色条分别设置不同的位置参数:
- 把surface图层的色条移到图表左侧,通过设置
colorbar = list(x = -0.2)实现 - 把散点图层的色条留在右侧并向外偏移,通过
marker$colorbar = list(x = 1.2)实现
修改后的完整代码如下:
set.seed(123) x = sample(1:ncol(volcano), size = 50) y = sample(1:nrow(volcano), size = 50) z = c() for(i in 1:50) {z <- c(z, volcano[y[i], x[i]])} df <- data.frame(x, y, z) plot_ly(z = volcano, type = "surface", # 调整曲面的色条到左侧,可按需微调x值 colorbar = list(x = -0.2, title = "曲面Z值")) %>% add_trace(data = df, x = x, y = y, z = z, mode = "markers", type = "scatter3d", marker = list(size = 5, symbol = 104, colorscale = "RdYlBu", autocolorscale = FALSE, # 调整散点的色条到右侧偏移位置 colorbar = list(x = 1.2, title = "散点Z值")), color = ~z)
补充说明:你之前用的legendrank参数只控制图例(legend)的排序,对色条(colorbar)完全无效。色条的位置必须通过对应图层的colorbar参数里的x、y值调整,数值可在-0.5到1.5区间内灵活修改,直到位置符合预期。
内容的提问来源于stack exchange,提问作者Beavis
相关产品推荐
相关产品推荐

