努力绘制3D堆叠条形图

时间:2019-02-04 18:49:43

标签: r ggplot2

我知道3D绘图不是表示数据的最佳方法。但是,我的主管(非统计人员)要求我这样做,所以我在这里。我正在尝试绘制包含某些关键字的单,双和三联的文档数。

我设法以2D方式绘制数据,这是我认为最好的方法,但是对于下周的会议,我也希望能够以3D形式绘制数据,即使这是为了说明为什么以3D模式绘制不适合。我已经附加了代码以重现我的数据以及到目前为止已经获得的图表。

理想情况下,我想将两种情节结合起来。

二维堆叠条形图:

2D stacked bar plot

3D条形图:

3D bar plot

我的数据:

b <- c(336,358,168,143,NA,358,161,142,NA,NA,168,100,NA,NA,NA,143)
c <- c(358,358,161,142,NA,3114,2200,2205,NA,NA,2200,842,NA,NA,NA,2205)
f <- c(163,161,163,100,NA,2200,2200,842,NA,NA,3388,899,NA,NA,NA,899)
e <- c(143,142,100,143,NA,2205,842,2205,NA,NA ,899,899,NA,NA,NA,2754)

ndimdata <- array(c(b, c, f, e), 
                  c(4, 4, 4), 
                  list(c("hmasm", "s", "ppng", "cdr"), 
                       c("hmasm", "s", "ppng", "cdr"), 
                       c("hmasm", "s", "ppng", "cdr")))

数据如下:

> ndimdata
, , hmasm

          hmasm   s ppng cdr
hmasm   336  NA   NA  NA
s       358 358   NA  NA
ppng    168 161  168  NA
cdr     143 142  100 143

, , s

       hmasm    s ppng  cdr
hmasm   358   NA   NA   NA
s       358 3114   NA   NA
ppng    161 2200 2200   NA
cdr     142 2205  842 2205

, , ppng

      hmasm    s ppng cdr
hmasm   163   NA   NA  NA
s       161 2200   NA  NA
ppng    163 2200 3388  NA
cdr     100  842  899 899

, , cdr

       hmasm    s ppng  cdr

 hmasm   143   NA   NA   NA
 s       142 2205   NA   NA
 ppng    100  842  899   NA
 cdr     143 2205  899 2754

我的代码:

library(ggplot2)
library(reshape2)
df <- melt(ndimdata, id.vars=c("keywords1", "keywords2"))

#2d stacked plot
ggplot(df, aes(x = Var2, y = value, fill = Var3)) + 
  geom_bar(stat = 'identity', position = 'stack') + 
  facet_grid(~ Var1)

library(latticeExtra)
#3d non-stacked plot
cloud(df$value ~ df$Var1 + df$Var3, df, 
      panel.3d.cloud = panel.3dbars, 
      xbase=0.4, ybase=0.4, scales=list(arrows=FALSE, col=1), 
      par.settings = list(axis.line = list(col = "transparent")), 
                          drape=TRUE) 

0 个答案:

没有答案
相关问题