首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绘图中的动态形状选择

绘图中的动态形状选择
EN

Stack Overflow用户
提问于 2020-06-09 19:40:47
回答 1查看 272关注 0票数 0

为了突出显示时间序列中的区域,我使用了layout > shapes对象,如下所述:How to add colored background bars in plotly.js chart

现在每个背景形状都有一个“类型”,我希望用户能够显示/隐藏特定的类型,就像跟踪一样(例如,只显示V4和V5,隐藏V3,如下例所示)。

这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2020-06-19 19:17:19

原则上,这可以通过使用形状的轨迹嵌入来指定背景区域来实现。这样,背景区域就会显示在图例中。使用一些随机的示例数据,尝试这样做:

代码语言:javascript
运行
复制
library(plotly)
set.seed(42)
d <- data.frame(
  x=as.Date(c('2015-02-01', '2015-02-02', '2015-02-03', '2015-02-04', '2015-02-05',
     '2015-02-06', '2015-02-07', '2015-02-08', '2015-02-09', '2015-02-10',
     '2015-02-11', '2015-02-12', '2015-02-13', '2015-02-14', '2015-02-15',
     '2015-02-16', '2015-02-17', '2015-02-18', '2015-02-19', '2015-02-20',
     '2015-02-21', '2015-02-22', '2015-02-23', '2015-02-24', '2015-02-25',
     '2015-02-26', '2015-02-27', '2015-02-28')),
  y=runif(28, 350, 550)
)
d

range_y <- list(min = floor(min(d$y) / 100) * 100, max = ceiling(max(d$y) / 100) * 100)

shape1 <- data.frame(x = as.Date(c('2015-02-01', '2015-02-08')), y = c(range_y$max, range_y$max))
shape2 <- data.frame(x = as.Date(c('2015-02-23', '2015-02-27')), y = c(range_y$max, range_y$max))

plot_ly(x=~x, y=~y) %>% 
  add_trace(data = d, mode = "lines+markers", type = "scatter") %>% 
  add_trace(data = shape1, mode = "none", fill = "tozeroy", name = "type1") %>% 
  add_trace(data = shape2, mode = "none", fill = "tozeroy", name = "type2") %>% 
  layout(yaxis = list(range = c(range_y$min, range_y$max)))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62281772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档