使用“plot_ly”的线条和标记的自定义颜色问题
Posted
技术标签:
【中文标题】使用“plot_ly”的线条和标记的自定义颜色问题【英文标题】:Problem with custom colors for both lines and markers with `plot_ly` 【发布时间】:2020-12-14 23:02:49 【问题描述】:假设我想为线条+标记情节使用自定义颜色。
使用plot_ly()
的colors
和color
参数非常简单,但是一旦我想自己修改标记(使用marker
参数)我遇到了困难并且没有找到帮助来解决这个问题具体问题在网上。
谁能告诉我我做错了什么?
# Underlying data
tmp <- mpg %>%
group_by(class,manufacturer) %>%
summarise(models=n())
# Works as expected
tmp %>%
plot_ly(x=~manufacturer,
y=~models,
group=~class,
type="scatter",
color=~class,
colors = scales::hue_pal()(length(n_distinct(tmp$class))), #ggplot colors
mode="lines+markers")
# Issue with markers > idea behind is to have a white center and a marker line with the same color as the line itself
tmp %>%
plot_ly(x=~manufacturer,
y=~models,
group=~class,
type="scatter",
color=~class,
colors = scales::hue_pal()(n_distinct(tmp$class)),
marker = list(color = 'rgba(255, 255, 255, 1)',
line = list(color = scales::hue_pal()(n_distinct(tmp$class)))),
mode="lines+markers")
【问题讨论】:
【参考方案1】:这可能看起来有点奇怪,但在您的情况下,非常简单的解决方案是放弃:
line = list(color = scales::hue_pal()(n_distinct(tmp$class))))
并且只包括:
line = list(width = 3)
这是你现在的情节:
完整代码:
# Underlying data
tmp <- mpg %>%
group_by(class,manufacturer) %>%
summarise(models=n())
# Issue with markers > idea behind is to have a white center and a marker line with the same color as the line itself
tmp %>%
plot_ly(x=~manufacturer,
y=~models,
group=~class,
type="scatter",
color=~class,
colors = scales::hue_pal()(n_distinct(tmp$class)),
marker = list(color = 'rgba(255, 255, 255, 1)',
line = list(width = 3)),
mode="lines+markers")
tmp
【讨论】:
您好,谢谢您的回答。如果我想使用另一种颜色而不是曲线颜色怎么办?比方说黑?即我应该如何自定义标记线颜色?编辑 > 我认为width = 2
默认情况下 ;-)
@yahman269 line = list(color='black', width = 3))
会将所有标记线设置为黑色。如果您想了解更多详细信息,请考虑提出一个新问题。只需参考这个问题,然后从那里开始。
我的问题与最初的主题有关,但没有被正确问到:这里的诀窍是不要为line
提供颜色参数,好的,但是如果你想要自定义颜色怎么办?以上是关于使用“plot_ly”的线条和标记的自定义颜色问题的主要内容,如果未能解决你的问题,请参考以下文章