繁体   English   中英

如何使用R-Plotly更改颜色条的色阶?

[英]How can I change colorscale for colorbar with R-Plotly?

我试图用颜色作为我的第三维来创建一个散点图。 我可以根据自己的喜好更改色标,但无法更改色标以匹配散点图的色标(即使我指定了colorscale =“ Hot”,色标仍为“ Viridis”)。

library(plotly)

data = iris

p = plot_ly(data,
                x=~ Sepal.Length,
                y=~ Sepal.Width,
                type = 'scatter',
                mode = 'markers',
                marker = list(
                  size=10,
                  opacity=.9,
                  colorscale='Hot'),
                color=~Petal.Length)

colorbar(p)

我希望颜色条与指定的色标匹配,但它仍为“ Viridis”。

颜色栏应匹配指定的色标=“热”,但仍显示“ Viridis”

我不是一个绘图专家,所以我不确定潜在的问题,但是我可以通过在marker=参数内移动color=colorbar=定义来解决此问题:

plot_ly(data,
        x=~ Sepal.Length,
        y=~ Sepal.Width,
        type = 'scatter',
        mode = 'markers',
        marker = list(
            color=~Petal.Length,
            size=10,
            opacity=.9,
            colorscale='Hot',
            colorbar=list(
                title='Colorbar'
            )
        )
)

在此处输入图片说明

或者,如果您使用colors=参数而不是colorscale=来定义色标,它将按预期工作。 缺点是您必须使用:

colorbrewer2.org调色板名称(例如“ YlOrRd”或“ Blues”),或以十六进制“ #RRGGBB”格式插值的颜色向量,或诸如colorRamp()的颜色插值函数

p = plot_ly(data,
            x=~ Sepal.Length,
            y=~ Sepal.Width,
            type = 'scatter',
            mode = 'markers',
            marker = list(
                size=10,
                opacity=.9),
            color=~Petal.Length,
            colors = 'Blues'
)

colorbar(p)

在此处输入图片说明

'Blues'是一个色彩提升秤。 您还可以使用viridis软件包中的色标(请参阅?viridisLite::viridis ),例如:

# note that you need to provide an n= argument >= the number of colors needed
viridis::inferno(99)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM