我希望堆栈图如下所示,但我希望它们看起来是立方体(附件).在R中是否可能?

set.seed(123)
specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3))
condition <- rep(c("normal" , "stress" , "Nitrogen", "T") , 3)
value <- abs(rnorm(12, 0 ,15))
data <- data.frame(specie,condition,value)
 
# Stacked
ggplot(data, aes(fill=condition, y=value, x=specie)) + 
    geom_bar(position="stack", stat="identity", alpha = 0.7, width = 0.3) + theme_classic()

enter image description here

enter image description here

推荐答案

这在未发布的ggrgl包中是可能的.将此应用到您的示例中,我们有:

remotes::install_github('coolbutuseless/devout')
remotes::install_github('coolbutuseless/devoutrgl')
remotes::install_github('coolbutuseless/ggrgl', ref='main')

library(rgl)
library(devout)
library(devoutrgl)
library(ggrgl)
library(ggplot2)

p <- ggplot(data, aes(fill=condition, y=value, x=specie, z =2,
                 extrude_face_fill = condition)) + 
    geom_bar_z(position="stack", stat="identity", width = 0.3, extrude = TRUE,
               color = "black") + 
  theme_classic()

devoutrgl::rgldev()
p
invisible(dev.off())

结果是可旋转的3D ggplot:

enter image description here

R相关问答推荐

如果窗口在CLARME或集团之外,则有条件领先/滞后滚动总和返回NA

在边界外添加注释或标题

为什么当我try 在收件箱中使用合并功能时会出现回收错误?

r—绘制相交曲线

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

根据选中三个复选框中的一个或两个来调整绘图

ggplot的轴标签保存在officer中时被剪切

将数据集中的值增加到当前包含的最大值

在GGPLATE中将突出的点放在前面

合并后返回列表的数据帧列表

根据列表中项目的名称合并数据框和列表

正则表达式在第二个管道和第二个T之后拆分R中的列

减go R中列表的所有唯一元素对

在R中,如何从一系列具有索引名的变量快速创建数据帧?

将摘要图添加到facet_WRAP gglot的末尾

删除数据帧中特定行号之间的每第三行和第四行

在散点图中使用geom_point放置线图例

用多边形替换地块点

使用ifElse语句在ggploy中设置aes y值

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?