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

发布于 2019-04-23 15:35:48
我不是一个精明的专家,所以我不确定潜在的问题,但我可以通过将color=和colorbar=定义移到marker=参数中来解决这个问题:
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()这样的颜色插值函数。
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)https://stackoverflow.com/questions/55797099
复制相似问题