是否可以在 R 中自定义绘图范围滑块?

Posted

技术标签:

【中文标题】是否可以在 R 中自定义绘图范围滑块?【英文标题】:Is it possible to customize plotly rangeslider in R? 【发布时间】:2021-04-25 02:58:00 【问题描述】:

快速说明:我也在R Studio Community 上发布了这个问题。

我正在尝试修改一个绘图滑块,使其成为类似于此处的范围滑块:。

rangeslider() 函数的问题在于,它生成的不是像图像中那样的范围滑块,而是生成一个本质上是主图的子图:

dat<- data.frame(y=rnorm(366, mean=100, sd=50),
                 x=seq(as.Date("2020-01-01"), as.Date("2020-12-31"), by="days"))
p1<- dat %>% 
  ggplot(aes(x=x, y=y)) +
  geom_col() +
  theme_minimal() +
  xlab("") + ylab("") 
ggplotly(p1, tooltip="x", dynamicTicks = TRUE) %>% rangeslider()

.

我已经设法在 ggplot 的美学中使用frame = 获得了一个更类似于我想要的样式的滑块,但是生成的滑块一次只选择一个值而不是它们的范围:

dat<- data.frame(y=rnorm(366, mean=100, sd=50),
                 x=seq(as.Date("2020-01-01"), as.Date("2020-12-31"), by="days"))
p1<- dat %>% 
  ggplot(aes(x=x, y=y, frame=as.character(x))) +
  geom_col(position="dodge2") +
  theme_minimal() +
  xlab("") + ylab("") 
ggplotly(p1, tooltip="x")

.

是否可以用我想要的样式创建一个范围滑块?对于如何解决此问题的任何建议,我将不胜感激。

【问题讨论】:

【参考方案1】:

不幸的是,内置的 Plotly 滑块只有一个“手柄”,因此无法表示范围。

【讨论】:

我已经设计了一种使用串扰的 filter_slider() (rpubs.com/LucasT/715872) 的解决方案,但是当以与 range_slider() 相同的方式选择范围时,这不会放大图形。 那么如何将 Rangeslider 形式的 Shiny 连接到一个有情节的情节?那可行吗?请参阅我的问题:***.com/questions/70392086/…

以上是关于是否可以在 R 中自定义绘图范围滑块?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中自定义 Slider 小部件?

在 Java 中自定义默认 AbstractColorChooserPanel

如何在 iOS 中自定义 MPVolumeView?

在 Tailwind CSS 中自定义输入范围

如何在 Android 应用中自定义顶部状态栏?

如何在 SwiftUI 中自定义 Slider 蓝线?