【问题标题】:Overlaying scatter area in plot_ly在 plot_ly 中覆盖散点区域
【发布时间】:2020-07-17 03:55:47
【问题描述】:

我想在一个绘图上绘制图表并绘制填充区域形状和条形图。然而,区域形状覆盖条。我无法更改元素的顺序。可以带酒吧吗?

data <- data.frame(years = c(2005,2006,2007), values1 = c(1,2,3), values2 = c(3,3,2))

plot_ly(data, x = data$years, y=data$values1, type = 'bar') %>% 
  add_trace(x=data$years, y=data$values2, type = 'scatter', mode = 'lines', fill = 'tozeroy')

【问题讨论】:

  • 我尝试制作一个 ggplot 并且条形显示在线条和区域的前面。当我尝试使用 ggplotly 将其转换为 plotly 时,条形图后退到该区域的后面。真的很奇怪。
  • 也许layout 如此链接所示可能会有所帮助:stackoverflow.com/questions/48831856/…
  • 是的@csgroen,这很奇怪,我们不能以简单的方式设置元素的顺序,例如在 ggplot2 中。
  • 感谢@YBS 的建议,我会检查一下。

标签: r shiny plotly


【解决方案1】:

这是改编自@Maximilian Peters 的answer。这段代码

data <- data.frame(years = c(2005,2006,2007), values1 = c(1,2,3), values2 = c(3,3,2))
  
  plot_ly(data) %>%
    add_trace(x=~years, y=~values1, type = 'bar') %>%
    add_trace( x = ~years, y=~values2, type = 'scatter', mode = 'lines', fill = 'tozeroy', yaxis='y2'
    ) %>%
    layout(title = 'Trace order Plotly R',
           xaxis = list(title = ""),
           yaxis = list(side = 'left', title = 'Y - Axis', overlaying = "y2"),
           yaxis2 = list(side = 'right', title = "" )
    )

产生这个输出:

【讨论】:

  • 那将是一个很好的解决方案,我正在考虑它,但我需要保留右侧以进行不同的跟踪,但也许可以将第二个 y 轴向左移动并设置相同的比例这两个 y 轴?
  • 是的,可以创建 3 个 y 轴,然后为两个左侧轴设置相同的比例,为右侧设置不同的比例。它工作正常,我们可以控制元素的顺序。感谢您的帮助!
猜你喜欢
  • 2023-04-06
  • 2016-08-19
  • 2013-12-03
  • 2015-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
相关资源
最近更新 更多