R 如何使用ggplot2创建双面图表
我想创建一个双面图表,其中“target”变量位于x轴上,“birds”和“wolfs”位于y轴的左侧,每个都有自己的比例R 如何使用ggplot2创建双面图表,r,ggplot2,R,Ggplot2,我想创建一个双面图表,其中“target”变量位于x轴上,“birds”和“wolfs”位于y轴的左侧,每个都有自己的比例 df<- read.table(text = "target birds wolfs 1 0.3 0.5 0 0.9 0.2 ",header = TRUE) df您需要进行一些重塑,而ife
df<- read.table(text = "target birds wolfs
1 0.3 0.5
0 0.9 0.2 ",header = TRUE)
df您需要进行一些重塑,而ifelse
则有点懒惰:
df2 <- tidyr::gather(df, 'var', 'val', -target)
ggplot(df2, aes(var)) +
geom_col(aes(y = ifelse(target == 0, -val, val), fill = factor(target))) +
coord_flip()
df2df链接未显示,您能给出一个示例图吗?您确定要将目标放在x轴上,该轴基本上定义了左和右,但鸟类和狼也显示左和右?您好,@drmariod,链接已连接。其目的是显示每个变量相对于目标0/1的成功率(值)。我完全不清楚两侧是什么,以及目标在x轴上时如何工作。也许一个小草图会对我们有所帮助。你好@Axeman,我添加了一个草图。希望现在一切都清楚了。谢谢@Axeman,我不知道如何使用我的数据,如何在您的代码中使用我的数据,我没有看到“鸟”和“狼”的占位符@MQL4初学者:哦,我省略了一行代码,抱歉。不过,您需要将目标作为一个因素。您可以使用geom\u col
而不是geom\u bar(stat=“identity”)
。
df<- read.table(text = "target birds wolfs
1 0.3 0.5
0 0.9 0.2 ",header = TRUE)
df[df$target==0,] <- -df[df$target==0,]
df <- tidyr::gather(df,animal,value,c(birds,wolfs))
ggplot(df, aes(x = animal, y = value, fill = target)) +
geom_bar(stat = "identity") +
coord_flip()