13.4 双轴图
模拟一组数据
set.seed(2020)
<- data.frame(
dat dt = seq(from = as.Date("2020-01-01"), to = as.Date("2020-01-31"), by = "day"),
search_qv = sample(100000:1000000, size = 31, replace = T)
%>%
) transform(valid_click_qv = sapply(search_qv, rbinom, n = 1, prob = 0.5)) %>%
transform(qv_ctr = valid_click_qv / search_qv)
hoverinfo = "text"
表示 tooltips 使用指定的 text 映射,而 visible = "legendonly"
表示图层默认隐藏不展示,只在图例里显示,有时候很多条线,默认只是展示几条而已。举例如下
plot_ly(data = dat) %>%
add_bars(
x = ~dt, y = ~search_qv, color = I("gray80"), name = "搜索 QV",
text = ~ paste0(
"日期:", dt, "<br>",
"点击 QV:", format(valid_click_qv, big.mark = ","), "<br>",
"搜索 QV:", format(search_qv, big.mark = ","), "<br>",
"QV_CTR:", scales::percent(qv_ctr, accuracy = 0.01), "<br>"
),hoverinfo = "text"
%>%
) add_bars(
x = ~dt, y = ~valid_click_qv, color = I("gray60"), name = "点击 QV",
text = ~ paste0(
"日期:", dt, "<br>",
"点击 QV:", format(valid_click_qv, big.mark = ","), "<br>",
"搜索 QV:", format(search_qv, big.mark = ","), "<br>",
"QV_CTR:", scales::percent(qv_ctr, accuracy = 0.01), "<br>"
visible = "legendonly",
), hoverinfo = "text"
%>%
) add_lines(
x = ~dt, y = ~qv_ctr, name = "QV_CTR", yaxis = "y2", color = I("gray40"),
text = ~ paste("QV_CTR:", scales::percent(qv_ctr, accuracy = 0.01), "<br>"),
hoverinfo = "text",
line = list(shape = "spline", width = 3, dash = "line")
%>%
) layout(
title = "",
yaxis2 = list(
tickfont = list(color = "black"),
overlaying = "y",
side = "right",
title = "QV_CTR(%)",
# ticksuffix = "%", # 设置坐标轴单位
tickformat = '.1%', # 设置坐标轴刻度
showgrid = F, automargin = TRUE
),xaxis = list(title = "日期", showgrid = F, showline = F),
yaxis = list(title = " ", showgrid = F, showline = F),
margin = list(r = 20, autoexpand = T),
legend = list(
x = 0, y = 1, orientation = "h",
title = list(text = " ")
) )