如何使用 R 为 plot_ly 中的子图提供字幕
How to give subtitles for subplot in plot_ly using R
我想知道如何使用 plot_ly 为子图提供不同的字幕。请任何提示。在这种情况下,我得到了一个标题 BB。谢谢
p <- subplot(
plot_ly(economics, x = date, y = uempmed)%>%layout(showlegend = FALSE, title="AA"),
plot_ly(economics, x = date, y = unemploy)%>%layout(showlegend = FALSE, title="BB"),
margin = 0.05
)
布局中的title
属性是指整个绘图面的标题,所以只能有一个。但是,我们可以使用文本注释为您的子图创建 "titles",例如:
p <- subplot(
plot_ly(economics, x = date, y = uempmed)%>%layout(showlegend = FALSE),
plot_ly(economics, x = date, y = unemploy)%>%layout(showlegend = FALSE),
margin = 0.05
)
p %>% layout(annotations = list(
list(x = 0.2 , y = 1.05, text = "AA", showarrow = F, xref='paper', yref='paper'),
list(x = 0.8 , y = 1.05, text = "BB", showarrow = F, xref='paper', yref='paper'))
)
而不是定位 "by hand"(即,@d-roy 的回答),您现在可以利用 subplot()
的能力来重新定位论文引用的内容,例如注释(以及形状、图像等)。
library(plotly)
library(dplyr)
my_plot <- . %>%
plot_ly(x = ~date, y = ~value) %>%
add_annotations(
text = ~unique(variable),
x = 0.5,
y = 1,
yref = "paper",
xref = "paper",
xanchor = "middle",
yanchor = "top",
showarrow = FALSE,
font = list(size = 15)
)
economics_long %>%
group_by(variable) %>%
do(p = my_plot(.)) %>%
subplot(nrows = NROW(.), shareX = TRUE)
我能够使用 layout(annotations()) 方案,而不是在 subplot() 上,而是在 plot_ly 对象本身上。这为动态可视化提供了一个稍微更好的位置。所以要修改@d-roy 的回答:
p <- subplot(
plot_ly(economics, x = date, y = uempmed) %>%
layout(annotations = list(x = 0.2 , y = 1.05, text = "AA", showarrow = F,
xref='paper', yref='paper'),
showlegend = FALSE),
plot_ly(economics, x = date, y = unemploy) %>%
layout(annotations = list(x = 0.2 , y = 1.05, text = "AA", showarrow = F,
xref='paper', yref='paper'),
showlegend = FALSE),showlegend = FALSE))`.
请注意,在这种情况下,每个注释的注释坐标都是相同的,因为它们指的是每个子图,而不是整个组合图。
我想知道如何使用 plot_ly 为子图提供不同的字幕。请任何提示。在这种情况下,我得到了一个标题 BB。谢谢
p <- subplot(
plot_ly(economics, x = date, y = uempmed)%>%layout(showlegend = FALSE, title="AA"),
plot_ly(economics, x = date, y = unemploy)%>%layout(showlegend = FALSE, title="BB"),
margin = 0.05
)
布局中的title
属性是指整个绘图面的标题,所以只能有一个。但是,我们可以使用文本注释为您的子图创建 "titles",例如:
p <- subplot(
plot_ly(economics, x = date, y = uempmed)%>%layout(showlegend = FALSE),
plot_ly(economics, x = date, y = unemploy)%>%layout(showlegend = FALSE),
margin = 0.05
)
p %>% layout(annotations = list(
list(x = 0.2 , y = 1.05, text = "AA", showarrow = F, xref='paper', yref='paper'),
list(x = 0.8 , y = 1.05, text = "BB", showarrow = F, xref='paper', yref='paper'))
)
而不是定位 "by hand"(即,@d-roy 的回答),您现在可以利用 subplot()
的能力来重新定位论文引用的内容,例如注释(以及形状、图像等)。
library(plotly)
library(dplyr)
my_plot <- . %>%
plot_ly(x = ~date, y = ~value) %>%
add_annotations(
text = ~unique(variable),
x = 0.5,
y = 1,
yref = "paper",
xref = "paper",
xanchor = "middle",
yanchor = "top",
showarrow = FALSE,
font = list(size = 15)
)
economics_long %>%
group_by(variable) %>%
do(p = my_plot(.)) %>%
subplot(nrows = NROW(.), shareX = TRUE)
我能够使用 layout(annotations()) 方案,而不是在 subplot() 上,而是在 plot_ly 对象本身上。这为动态可视化提供了一个稍微更好的位置。所以要修改@d-roy 的回答:
p <- subplot(
plot_ly(economics, x = date, y = uempmed) %>%
layout(annotations = list(x = 0.2 , y = 1.05, text = "AA", showarrow = F,
xref='paper', yref='paper'),
showlegend = FALSE),
plot_ly(economics, x = date, y = unemploy) %>%
layout(annotations = list(x = 0.2 , y = 1.05, text = "AA", showarrow = F,
xref='paper', yref='paper'),
showlegend = FALSE),showlegend = FALSE))`.
请注意,在这种情况下,每个注释的注释坐标都是相同的,因为它们指的是每个子图,而不是整个组合图。