【问题标题】:How to set text to show currency on tooltip (using plot_ly NOT ggplotly)?如何设置文本以在工具提示上显示货币(使用 plot_ly 而不是 ggplotly)?
【发布时间】:2019-11-20 16:49:13
【问题描述】:

据我所知,在生成绘图对象时需要设置“文本”参数,然后将此“文本”参数称为工具提示。

数据:

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

上面的代码对工具提示的格式没有影响。

显示工具提示,但不需要货币格式。 例如,它应该是 S/2,399,而不是 2399。

【问题讨论】:

    标签: r plot plotly r-plotly


    【解决方案1】:

    您可以通过传递带有hoverformat 的列表来格式化layout 中的y 变量,该列表采用像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) 
    

    如果你想变得更高级,可以使用hovertemplate。这里有很多例子:https://plot.ly/r/hover-text-and-formatting/

    【讨论】:

    • 它仅适用于美元符号$,不适用于S/S\\S\\S\\/。您可以尝试以下符号:S/ 作为货币格式吗?
    猜你喜欢
    • 2019-11-18
    • 2019-11-21
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多