当使用ifelse时,使用三个变量(混合)的ggplot2的散点图在r中给出了错误的结果

当使用ifelse时,使用三个变量(混合)的ggplot2的散点图在r中给出了错误的结果,r,ggplot2,R,Ggplot2,我 尝试使用ggplot2绘制三个不同变量的散点图。我希望每个变量都有自己的图标打印形状和颜色。然而,代码给出的两个树图是完全相同的,这是错误的 ## generate the data N=2000 dim=dim U=runif(N, min=0,max=1) #set.seed(123) #U=runif(N, min=0,max=1) X = matrix(NA, nrow=N, ncol=3) for (i in 1:N){ if(U[i] <

尝试使用ggplot2绘制三个不同变量的散点图。我希望每个变量都有自己的图标打印形状和颜色。然而,代码给出的两个树图是完全相同的,这是错误的

## generate the data
  N=2000
  dim=dim
  U=runif(N, min=0,max=1)
  #set.seed(123)
  #U=runif(N, min=0,max=1)
  X = matrix(NA, nrow=N, ncol=3)
  for (i in 1:N){
    if(U[i] < 0.5){
      X[i,] <- rCopula(1,claytonCopula(1,dim=3)) ## must be lower tail
    } else if (U[i] < 0.3) {
      X[i,] <- rCopula(1,gumbelCopula(7,dim=3)) ## must be upper tail
    }else{
      X[i,] <- rCopula(1,frankCopula(2,dim=3))
    }
  }
##生成数据
N=2000
暗淡的
U=runif(N,最小值=0,最大值=1)
#种子集(123)
#U=runif(N,最小值=0,最大值=1)
X=基质(NA,nrow=N,ncol=3)
for(1:N中的i){
if(U[i]<0.5){

X[i,]
ggplot2
忽略了
z
美学,出于某种原因,添加了
facet\u-wrap(~sh\u of)
。如果您真的想使用
ggplot2
,您可以将
z
维度装箱,并使用
facet\u-wrap(~z)
绘制“切片”当然可以。但要获得实际的3d绘图,您需要另一个软件包-我建议使用
plotly
()或
rgl
()

你能发布它生成的绘图吗?我不知道有任何
ggplot2
函数可以制作3d绘图,除非你使用
plotly
或一些扩展。你知道关于这个
z
美学的任何文档吗?谢谢你的评论。老实说,我不知道关于z的任何文档。z是我的第三个变量。我将发送“正在绘制图形。@juod我添加了图形。对不起,我无法理解“bin the z”?请您进一步解释一下。我的意思是,您可以绘制多帧2d散点图,其中每帧仅包含具有特定范围的
z
值的点:例如,第一帧仅包含具有0的点。我需要的是根据生成的数据绘制具有不同颜色和形状的每个变量。然后使用o在我建议的其他软件包中,这是最简单的解决方案。
###################################################################
df = data.frame(
  sh_of = ifelse(U < 0.3, "Gumbel", ifelse( U < 0.5, "Clayton", "Frank")),
  x = X[, 1],
  y = X[, 2],
  z = X[, 3]
)

ggplot(df, aes(x = x, y = y,z=z, colour = sh_of, shape = sh_of)) +
  geom_point()+scale_shape_manual(values=c(12,25,14)) + ggtitle("")+theme(plot.title = element_text(family = "Trebuchet MS", color="black", face="italic", size=15, hjust=0.5))