gpt4 book ai didi

r - 更改 Plotly Animation 中的 'Frame' 标签

转载 作者:行者123 更新时间:2023-12-03 23:07:50 26 4
gpt4 key购买 nike

TLDR:我想用三个字母的缩写而不是每个月的数字来标记框架 slider 。

我创建了一个条形图,显示了 40 年期间每个月的平均积雪深度。我从 NOAA 提取数据,然后使用 lubridate 按年和月分组。这是代码:

  snow_depth <- govy_data$snwd %>%
replace_na(list(snwd = 0)) %>%
mutate(month_char = month(date, label = TRUE, abbr = TRUE)) %>%
group_by(year = year(date), month = month(date), month_char) %>%
summarise(avg_depth = mean(snwd))

mutate 函数在数据框中创建一个列 (month_char),其中包含每个月的三个字母缩写。此列的类是有序因子。

下面的代码显示了我如何创建图表/动画:
snow_plot <- snow_depth %>% plot_ly(
x = ~year,
y = ~avg_depth,
color = ~avg_temp,
frame = ~month,
text = ~paste('<i>Month</i>: ', month_char,
'<br><b>Avg. Depth</b>: ', avg_depth,
'<br><b>Avg. Temp</b>: ', avg_temp),
hoverinfo = 'text',
type = 'bar'
)

snow_plot

此代码生成一个动画效果很好的图,如下所示:

snow chart

我想做的是更改 slider 上的标签,而不是数字,而是显示三个字母的月份缩写。我尝试将框架切换到 ~month_char,这是三个字母月份缩写的有序因子。我最终得到的,根本不对:

snow chart, bad

数据框如下所示:

snow-depth-df

最佳答案

我担心 current implementation R 的 plotly API 中的动画 slider 无法实现所需的行为。这是因为不允许自定义动画步骤(包括标签)。请查看(并支持)我的GitHub FR了解更多信息。

这是我目前能想到的最好的:

library(plotly)

DF <- data.frame(
year = rep(seq(1980L, 2020L), each = 12),
month = rep(1:12, 41),
month_char = rep(factor(month.abb), 41),
avg_depth = runif(492)
)

fig <- DF %>%
plot_ly(
x = ~year,
y = ~avg_depth,
frame = ~paste0(sprintf("%02d", month), " - ", month_char),
type = 'bar'
) %>%
animation_slider(
currentvalue = list(prefix = "Month: ")
)

fig

(从 OP 编辑​​)这是使用上述代码生成的图表:

Snow Plot With Month Labels

关于r - 更改 Plotly Animation 中的 'Frame' 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61152879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com