Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用ggplot2创建双面图表_R_Ggplot2 - Fatal编程技术网

R 如何使用ggplot2创建双面图表

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

我想创建一个双面图表,其中“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您需要进行一些重塑,而
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()

df2
df链接未显示,您能给出一个示例图吗?您确定要将目标放在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()