gpt4 book ai didi

r - 在堆积区域图中将悬停文本格式化为 $ (R/Plot.ly)

转载 作者:行者123 更新时间:2023-12-01 09:42:09 27 4
gpt4 key购买 nike

我如何将 plot.ly 的“文本”格式化为这样的美元金额(或其他任何内容) - 4,000,000 美元(带逗号) - 在 R 中?

即使我的“真实”数据已经格式化为 $,一旦我在 add_trace 函数中执行 hoverinfo='x+text' ,它就会丢失格式。 plotly 布局功能中的 Hoverformat = "$,f"也没有帮助。

以下是 R 中堆叠面积图的可重现示例:

library(plotly)

season <- c('Winter', 'Spring', 'Summer', 'Fall')
y1_real<- c(40, 80, 95, 10)
y2_real<- c(20, 55, 10, 10)
y3_real<- c(40, 10, 60, 180)

df= data.frame(season, y1_real, y2_real, y3_real)

#changing the format of the real data to $

class(df$y1_real)<- c("money", class(df$y1_real) )
class(df$y2_real)<- c("money", class(df$y2_real))
class(df$y3_real)<- c("money", class(df$y3_real))

df$y3_stck<- df$y3_real + df$y2_real + df$y1_real
df$y2_stck<- df$y2_real + df$y1_real
df$y1_stck<- df$y1_real

p1<- plot_ly(df, x=season, y=y1_stck, text=df$y1_real, hoverinfo='x+text+name', name="Blue", fill="tonexty")
p2<- add_trace(p1, x=season, y=y2_stck, text=df$y2_real, hoverinfo='x+text+name', name="Orange", fill="tonexty")
p3<- add_trace(p2, x=season, y=y3_stck, text=df$y3_real, hoverinfo='x+text+name', name="Green", fill="tonexty")

p4<- layout(yaxis=list(showgrid=FALSE, showline=FALSE, hoverformat="$,f"))
p4

谢谢!

最佳答案

这是一个建议:-)
创建三个带有美元符号的新列。

df$y1_reald <- paste(y1_real, "$", sep="")
df$y2_reald <- paste(y2_real, "$", sep="")
df$y3_reald <- paste(y3_real, "$", sep="")

并在 text 参数中使用这三个新列。您将看到 $ 显示
p1<- plot_ly(df, x=season, y=y1_stck, text=df$y1_reald, hoverinfo='x+text+name', name="Blue", fill="tonexty")
p2<- add_trace(p1, x=season, y=y2_stck, text=df$y2_reald, hoverinfo='x+text+name', name="Orange", fill="tonexty")
p3<- add_trace(p2, x=season, y=y3_stck, text=df$y3_reald, hoverinfo='x+text+name', name="Green", fill="tonexty")

p4<- layout(yaxis=list(showgrid=FALSE, showline=FALSE, hoverformat="$,f"))
p4

enter image description here

编辑:在评论中提出问题

几乎相同的代码,但只需将您的列乘以您想要的数字并添加“,”作为分隔符。
y1_reald <- (y1_real*100000)
y2_reald <- (y2_real*100000)
y3_reald <- (y3_real*100000)
y1_reald <- prettyNum(y1_reald,big.mark=",",scientific=FALSE)
y2_reald <- prettyNum(y2_reald,big.mark=",",scientific=FALSE)
y3_reald <- prettyNum(y3_reald,big.mark=",",scientific=FALSE)
#
df$y1_reald <- paste(y1_reald, "$", sep="")
df$y2_reald <- paste(y2_reald, "$", sep="")
df$y3_reald <- paste(y3_reald, "$", sep="")

然后就跑
p1<- plot_ly(df, x=season, y=y1_stck, text=df$y1_reald, hoverinfo='x+text+name', name="Blue", fill="tonexty")
p2<- add_trace(p1, x=season, y=y2_stck, text=df$y2_reald, hoverinfo='x+text+name', name="Orange", fill="tonexty")
p3<- add_trace(p2, x=season, y=y3_stck, text=df$y3_reald, hoverinfo='x+text+name', name="Green", fill="tonexty")

p4<- layout(yaxis=list(showgrid=FALSE, showline=FALSE, hoverformat="$,f"))
p4

这会给你你想要的图表。

enter image description here

关于r - 在堆积区域图中将悬停文本格式化为 $ (R/Plot.ly),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34573791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com