R plot_u u y mesh3d颜色工作不正常

R plot_u u y mesh3d颜色工作不正常,r,plotly,R,Plotly,如何使色标与数字相匹配?最高点为2000,在本例中应为蓝色,但较高值为红色,表示较低的数字。下面是一个示例数据帧和代码 test <- data.frame(a = c(10,20,15,30,45,40,20,30,25,30,10,40,10,20,15), b = c(5,10,5,15,10,20,20,15,10,5,15,20,5,10,5), c = c(500, 1000,1250, 750,575

如何使色标与数字相匹配?最高点为2000,在本例中应为蓝色,但较高值为红色,表示较低的数字。下面是一个示例数据帧和代码

test <- data.frame(a = c(10,20,15,30,45,40,20,30,25,30,10,40,10,20,15),
                   b = c(5,10,5,15,10,20,20,15,10,5,15,20,5,10,5),
                   c = c(500, 1000,1250, 750,575,200,800,2000,1500,1750,250,750,1000,800,500))


理想情况下,颜色刻度会更具体,其中0-500为红色,501-1000为橙色,1001-1500为黄色,1501-2000为绿色而不是刻度

也许这就是你需要的:

plot_ly(data = test,
        x = ~a,
        y = ~b,
        z = ~c,
        intensity = ~c,
        colorscale = list(c(0,'red'),
                          c(0.33,'orange'),
                          c(0.66, 'yellow'),
                          c(1, 'green')),
        type = 'mesh3d')

为什么左上角仍然是红色?它高于1500,所以它应该是绿色/黄色,右下角低于500,但green@theofficefan12是的。在脚本中,有3个轴。请注意,您尚未指定哪一个是引用。把
intensity=~c
放进去,这就是你想要的。我修改了我的回答。
plot_ly(data = test,
        x = ~a,
        y = ~b,
        z = ~c,
        intensity = ~c,
        colorscale = list(c(0,'red'),
                          c(0.33,'orange'),
                          c(0.66, 'yellow'),
                          c(1, 'green')),
        type = 'mesh3d')