绘制和跟踪相同颜色的因子 plotly R

Posted

技术标签:

【中文标题】绘制和跟踪相同颜色的因子 plotly R【英文标题】:Make plot and trace same color by factor plotly R 【发布时间】:2018-06-13 11:56:27 【问题描述】:

我有一个包含 3 个因素的散点图。我添加了 3 条迹线,其中每条迹线对应一个因子。我希望散点图和轨迹是相同的颜色。这是生成适当测试数据的简单函数:

## generate test data
getTestData <- function(seed_val=711, noise=1.0) 
    set.seed(seed_val)
    d <- seq(as.Date('2017/01/01'), as.Date('2017/01/08'), "days")
    first_name <- rep("Jane", 8)
    first_name <- append(first_name, rep("Fred", 8))
    first_name <- append(first_name, rep("Sally", 8))
    y1_vals <- seq(1, 3*8, 1)
    y2_vals <- rnorm(3*8, mean=y1_vals, sd=noise)
    dat <- data.frame(date=d, f_name=first_name, y1=y1_vals, y2=y2_vals,
                      stringsAsFactors = FALSE)
    return(dat)

如果我创建一个数据框并将其传递给 plot_ly,如下所示:

library(plotly)
library(dplyr)
df <- getTestData()
p1 <- plot_ly(df, x=~date, y=~y1, color=~f_name,
          type = 'scatter', mode = "lines+markers") %>% 
      layout(yaxis = list(title = "some important y value")) %>% 
      add_trace(y=~y2, name='actual', showlegend=TRUE, 
          type='scatter', mode='lines',
          line=list(width = 2, dash = 'dash', color=~f_name))

我明白了:

如何让散点图和对应轨迹的颜色相同?

这不是我所需要的: Grouped line plots in Plotly R: how to control line color?

这非常接近: Same color assigned to same level of factor in R plotly 但是这个答案的作者指出了我在尝试各种黑客攻击时遇到的问题:

请注意,由于情节使用的顺序(有时我无法破译),具有 [ing] 因子变量可能会搞砸。

【问题讨论】:

【参考方案1】:

你在寻找这样的东西吗:

pal <- c("red", "blue", "green")
p1 <- plot_ly(df, x=~date, y=~y1, color=~f_name, colors = pal,
              type = 'scatter', mode = "lines+markers") %>% 
    layout(yaxis = list(title = "some important y value")) %>% 
    add_trace(y=~y2, name='actual', showlegend=TRUE, 
              type='scatter', mode='lines',
              line=list(width = 2, dash = 'dash'), color=~f_name, colors = pal)
p1

【讨论】:

是的。我已经尝试过几乎完全一样的东西,除了我将跟踪的最后 2 个参数放在行列表中。感谢您为我解决这个问题。

以上是关于绘制和跟踪相同颜色的因子 plotly R的主要内容,如果未能解决你的问题,请参考以下文章

R---plot()参数详解

R语言绘制火山图(volcano plot)实战:为差异表达基因(DEGs)添加颜色基于显著性阈值进行点的颜色美化为选定基因添加标签

如何在 R Plotly 中用颜色向量绘制一条线

R Plotly:拆分图例:符号和颜色

绘制不同样式不同颜色的线

R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(单色填充分组颜色填充)实战(dot plot)