R 如何设置文字以在工具提示上显示货币(仅使用plot而非ggplotly)?

R 如何设置文字以在工具提示上显示货币(仅使用plot而非ggplotly)?,r,plot,plotly,r-plotly,R,Plot,Plotly,R Plotly,据我所知,在生成plotly对象时需要设置“text”参数,然后将此“text”参数称为工具提示 数据: 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("fa

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

数据:

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")
上述代码对工具提示的格式没有影响。

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


您可以通过使用
hoverformat
传递一个列表来格式化
布局中的y变量,该列表采用类似
sprintf
的格式化字符串

plot\u ly(ha,x=~periodo,y=~precio.actual,color=~ecommerce,
颜色=c(“#BED800”、“#802D69”、“#FF5500”))%>%
添加_boxplot()%>%
布局(yaxis=列表(
hoverformat='$,.2f'
)) %>% 
配置(displayModeBar=FALSE)


如果你想变得更时尚,你可以使用
hovertemplate
。这里有很多例子:

它只适用于dolar符号
$
,而不适用于
S/
S
\\S
\\S\\\/
。您可以尝试以下符号:
S/
作为货币格式吗?
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