如何启动只有一些值可见的 R plotly 图表

How to initiate R plotly chart with only some values visible

我渴望能够最初只显示一组选定的变量值的点。因此,在下面的示例中,最初只显示团队值 'a',图例中的 'b' 变灰但可切换

library(plotly)
library(dplyr)

df <- data.frame(year=(c(2000,2001,2001,2002)),team=c("a","b","a","b"),values=c(1,3,2,4),stringsAsFactors = FALSE)

plot_ly(data=df, x=year,y=values,color=team,mode="markers")

此外,坐标轴如何只显示整数 - 不确定如何修改范围以满足此要求

最简单的是从默认关闭所有迹线开始,然后通过单击图例单独切换它们

plot_ly(data=df, x=year,y=values,color=team,mode="markers", visible="legendonly")

如果您想从一些已经可见的点开始,而其他点则关闭,您将需要使用两条轨迹,第二条带有 visible="legendonly"。如果这样做,您还需要手动选择颜色。

plot_ly(data=df[which(df$team=="a"),], x=year,y=values,
        color=team, colors = "blue", mode="markers") %>%
  add_trace(data=df[which(df$team=="b"),], x=year,y=values, color=team, 
        colors="green", mode="markers", visible="legendonly")

您可以使用 layout 函数控制轴和刻度。要仅以单位间隔放置刻度,您可以使用此

plot_ly(data=df[df$team=="a",], x=year,y=values,color=team, colors = "blue", mode="markers") %>%
  add_trace(data=df[df$team=="b",], x=year,y=values, color=team, colors = "green", mode="markers", visible="legendonly") %>%
  layout(xaxis = list(autotick = FALSE, tickmode="linear", tick0 =2000, dtick=1, range=c(1999.5,2003.5)), 
         yaxis = list(autotick = FALSE, tickmode="linear", tick0 =0, dtick=1, range=c(0,5)) )

可以在 https://plot.ly/r/reference/

中找到 plotly API 中所有选项的完整描述