首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用R-Plotly来改变色棒的色标?

如何用R-Plotly来改变色棒的色标?
EN

Stack Overflow用户
提问于 2019-04-22 15:49:31
回答 1查看 6K关注 0票数 1

我正试图用颜色作为我的第三维度来创建一个平缓的散乱的情节。我可以随意更改我的彩色刻度,但是我无法更改我的颜色条来匹配散射点的色标(即使我指定了色标=‘热’,色条仍然保持'Viridis‘)。

代码语言:javascript
复制
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‘。

EN

回答 1

Stack Overflow用户

发布于 2019-04-23 15:35:48

我不是一个精明的专家,所以我不确定潜在的问题,但我可以通过将color=colorbar=定义移到marker=参数中来解决这个问题:

代码语言:javascript
复制
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=来定义颜色标度,它将按需要工作。缺点是你必须使用:

无论是彩色啤酒厂2.org调色板名称(例如。"YlOrRd“或"Blues"),或以十六进制"#RRGGBB”格式插值的颜色向量,或像colorRamp()这样的颜色插值函数。

代码语言:javascript
复制
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),如下所示:

代码语言:javascript
复制
# note that you need to provide an n= argument >= the number of colors needed
viridis::inferno(99)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55797099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档