Как установить текст для отображения валюты во всплывающей подсказке (используя plot_ly НЕ ggplotly)? - PullRequest
1 голос
/ 11 июля 2019

Насколько я мог исследовать необходимость установить аргумент "текст" при генерации объекта plotly, а затем вызвать этот аргумент "текст" в качестве всплывающей подсказки.

данные:

ha <- structure(list(periodo = structure(c(2L, 2L, 2L, 2L, 2L, 2L), .Label = c("2017", 
"2016"), class = c("ordered", "factor")), ecommerce = structure(c(2L, 
2L, 2L, 2L, 2L, 2L), .Label = c("falabella", "ripley", "linio"
), class = c("ordered", "factor")), marca = c("samsung", "samsung", 
"lg", "lg", "samsung", "lg"), producto = c("samsung tv led hd 32'' 32j4000", 
"samsung smart tv led fhd 48\"\" 3d 48j6400", "lg smart tv led 43'' full hd 43lh5700", 
"lg smart tv led 49'' full hd 49lh5700", "samsung smart tv 50ju6500 led uhd 50\"\" - negro", 
"lg smart tv led 49\"\" ultra hd tv 49uh6500"), precio.antes = c(999, 
2799, 1649, 1999, 3699, 2799), precio.actual = c(799, 1999, 1249, 
1699, 2399, 2199), pulgadas = c(32, 48, 43, 49, 50, 49), rango = c("S/.500 -\r\n S/.1500", 
"S/.1500 -\r\n S/.2500", "S/.500 -\r\n S/.1500", "S/.1500 -\r\n S/.2500", 
"S/.1500 -\r\n S/.2500", "S/.1500 -\r\n S/.2500"), descuento = c(-0.2002002002002, 
-0.285816362986781, -0.242571255306246, -0.150075037518759, -0.351446336847797, 
-0.214362272240086)), row.names = c(NA, 6L), class = "data.frame")

В ggplotly текстовый аргумент помещается внутри функции aes().

При использовании plot_ly я размещаюэто здесь внутри:

p <- plot_ly(ha, x = ~periodo, y = ~precio.actual, color = ~ecommerce,colors = c("#BED800", "#802D69", "#FF5500"), text = sprintf("S/ %s", comma(~precio.actual)), textinfo= "text", hoverinfo = "text") %>%
  add_boxplot() %>%
  layout(boxmode = "group") %>% 
  config(displayModeBar = FALSE) 

p

Приведенный выше код не влияет на форматирование всплывающей подсказки.

Показывает подсказку, но без необходимого форматирования валюты.Например, вместо 2399 это должно быть S / 2,399.

enter image description here

1 Ответ

1 голос
/ 11 июля 2019

Вы можете отформатировать переменную y в layout, передав список с hoverformat, который принимает строку форматирования, такую ​​как sprintf.

plot_ly(ha, x = ~periodo, y = ~precio.actual, color = ~ecommerce, 
        colors = c("#BED800", "#802D69", "#FF5500")) %>%
    add_boxplot() %>%
    layout(yaxis = list(
        hoverformat = '$,.2f'
    )) %>% 
    config(displayModeBar = FALSE) 

plotply plot with formatted hoverinfo

Если вы хотите стать поклонником, вы можете использовать hovertemplate. Здесь много примеров: https://plot.ly/r/hover-text-and-formatting/

...