gpt4 book ai didi

R在vioplot中表示状态概率

转载 作者:行者123 更新时间:2023-12-04 18:11:23 25 4
gpt4 key购买 nike

我有一个显示三个状态的vioplot:

library(vioplot)
state1 <- rnorm(100,5,2)
state2 <- rnorm(100,8,3)
state3 <- rnorm(100,12,0.5)
vioplot(state1,state2, state3, names=c("a", "b", "c"), col="green")

如何添加到该图中以图形方式显示
state1 发生的概率是 0.3,
state2 是 0.2 而 state3 是 0.5 ?

或者有没有更好的方法以图形方式表示这一点?

谢谢您的帮助。

最佳答案

这是 Ben Bolker 建议根据给定状态概率对密度估计区域进行加权的示例(我相信)。我使用 ggplot2 的 weights 参数来执行此操作,似乎需要进行一些黑客攻击才能允许 vioplot允许权重函数的函数(尽管这很有用,请参阅 related discussion on crossvalidated )。

enter image description here

library(ggplot2)
library(reshape2)

state1 <- rnorm(100,5,2)
state2 <- rnorm(100,8,3)
state3 <- rnorm(100,12,0.5)
state1_w <- rep(0.3, 100)
state2_w <- rep(0.2, 100)
state3_w <- rep(0.5, 100)

state_df1 <- data.frame(cbind(state1,state2,state3))
state_df2 <- data.frame(cbind(state1_w,state2_w,state3_w))
#now to reshape and merge
state_melt1 <- melt(state_df1, measure.vars = c("state1","state2","state3"), variable.name = "State_Num", value.name = "State_Value")
state_melt2 <- melt(state_df2, measure.vars = c("state1_w","state2_w","state3_w"), variable.name = "State_W", value.name = "State_WValue")
state_melt <- data.frame(state_melt1,state_melt2)

#now making the plot
p1 <- ggplot(data = state_melt, aes(State_Num,State_Value,weight = State_WValue))
p1 + geom_violin(fill = "green")

您会收到一些错误消息,说权重不加为一,但这里我们希望这些区域与其状态空间概率成正比。

关于R在vioplot中表示状态概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12592980/

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