R 第一次在ggplotly中使用交互式绘图,希望对我的绘图有一些反馈

R 第一次在ggplotly中使用交互式绘图,希望对我的绘图有一些反馈,r,plot,ggplot2,plotly,R,Plot,Ggplot2,Plotly,这是我第一次使用ggplot2/ggploty(),我希望得到一些反馈,告诉我如何才能使我的绘图更好 这是我使用的代码: # interactive plot with ribbon test <- ggplot(data = wide.data, aes(x = x, y = pred)) + geom_ribbon(aes(ymin = lwr, ymax = upr, fill = model), alpha = .5) + geom_point(aes( group =

这是我第一次使用ggplot2/ggploty(),我希望得到一些反馈,告诉我如何才能使我的绘图更好

这是我使用的代码:

 # interactive plot with ribbon
test <- ggplot(data = wide.data, aes(x = x, y = pred)) +
  geom_ribbon(aes(ymin = lwr, ymax = upr, fill = model), alpha = .5) + 
  geom_point(aes( group = model, fill = model)) + 
  labs(x = "Number of Games Played", y = "Total Number of Goals") + scale_y_continuous(breaks=seq(0,70,5)) +
  scale_x_continuous(breaks=seq(0,50,5))

ggplotly(test)
此外,我还有一些具体问题:

  • 因为我的一些色带是重叠的,有没有办法在只有两条色带显示的情况下强制情节打开

  • 是否有方法手动覆盖图例中列出的值。我知道它们是由数据框
    wide.data
    中列出的内容驱动的,但我想知道是否有办法在那里输入我自己的文本

  • 如果使用
    visible=“legendly”
    直接使用
    plot__ly()
    (而不是ggplot)构建绘图,则可以将绘图设置为打开并隐藏一些功能区
  • 您可以使用
    name=
    设置每个轨迹在图例中显示的名称
  • 一个简单的例子:

    my.data = data.frame(x=1:40, y=1:40)
    plot_ly(my.data, x=x, y=y, mode="markers", name="foo") %>%
      add_trace(type="area", x=c(x,rev(x)), y= c(y+10, rev(y)-10), 
                fill = "toself", visible="legendonly", name="bar")
    

    如果您使用
    dput(wide.data)
    (复制问题的小版本)提供数据样本,我们将能够在本地绘制它。您不需要为代码提供指向绘图的链接。@steveb done。仍然相当大,但这应有助于
    ggplot
    plotly
    的绘图基本相同(情况并非总是如此,因为可以在plotly绘图上剪裁轴)。您的问题似乎主要集中在基于您的问题的
    ggplot
    部分。需要一些澄清(至少对我来说),你是说你只希望一部分线条有色带?你到底想在图例中显示什么。对于你的第一个问题,当你在
    ggplotly(test)
    中使用绘图时,你可以单击图例来显示/隐藏绘图线/色带。因此,正如你在ggplotly绘图中所看到的,图例中列出了BLI、BPL等,而我更喜欢德甲,英超联赛等。你建议我单独与ggplot合作,还是在某些方面与plotly合作对我有帮助?谢谢你的回答,我有一些后续问题。因此,在我的绘图中,功能区和预测线连接在一起,即图例按钮应隐藏特定的预测线及其关联的功能区。这似乎是一个单独的情节。
    my.data = data.frame(x=1:40, y=1:40)
    plot_ly(my.data, x=x, y=y, mode="markers", name="foo") %>%
      add_trace(type="area", x=c(x,rev(x)), y= c(y+10, rev(y)-10), 
                fill = "toself", visible="legendonly", name="bar")