我知道3D绘图不是表示数据的最佳方法。但是,我的主管(非统计人员)要求我这样做,所以我在这里。我正在尝试绘制包含某些关键字的单,双和三联的文档数。
我设法以2D方式绘制数据,这是我认为最好的方法,但是对于下周的会议,我也希望能够以3D形式绘制数据,即使这是为了说明为什么以3D模式绘制不适合。我已经附加了代码以重现我的数据以及到目前为止已经获得的图表。
理想情况下,我想将两种情节结合起来。
二维堆叠条形图:
3D条形图:
我的数据:
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)