Я не эксперт по сюжету, поэтому я не уверен в основной проблеме, но я могу решить эту проблему, переместив определения 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=
, она будет работать как нужно. Недостатком является то, что вы должны использовать:
Либо имя палитры 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)