Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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
Python R:绘制一个三维直方图_Python_R_Plot_Statistics_Histogram - Fatal编程技术网

Python R:绘制一个三维直方图

Python R:绘制一个三维直方图,python,r,plot,statistics,histogram,Python,R,Plot,Statistics,Histogram,我有一个三维阵列。 列的标题是“身高”、“体重”和“年龄”。 如何使用hist3d或任何其他可用功能绘制三维直方图 file<-read.csv(file.choose(),TRUE,"") x <- file$height y <- file$weight z<- file$age xlab="Height" ylab="Weight" zlab="Age" 文件 或者,从演示(“hist3d”,package=“rgl”)修改: 库(“rgl”) barplot3

我有一个三维阵列。 列的标题是“身高”、“体重”和“年龄”。 如何使用
hist3d
或任何其他可用功能绘制三维直方图

file<-read.csv(file.choose(),TRUE,"")
x <- file$height 
y <- file$weight
z<- file$age
xlab="Height"
ylab="Weight"
zlab="Age"
文件
或者,从
演示(“hist3d”,package=“rgl”)
修改:

库(“rgl”)

barplot3d_0您认为3D柱状图是什么样的?您可能有两个变量(x=var1,y=var2,z=freq)的3D直方图,但对于三个独立变量,您需要4个维度来表示频率。以某种方式这没有多大意义。另外,提供一些真实的数据,让@MrFlick为没有那么清楚而感到抱歉,是的,变量是绝对相关的,正如您刚才给出的示例(x=var1,y=var2,z=freq)我们确实需要一个可复制的示例,请。您还没有澄清太多:您是否希望条的高度(在z方向)表示年龄(在这种情况下,每对(高度、重量)只应有一个条目)?@BenBolker老实说,我之所以提出这个例子,是因为我认为它很简单。真正的问题是,我有一个路由器网络,每个路由器用两个坐标X和Y表示,每个路由器(每个X和Y的意思)我有该路由器的延迟(这意味着路由器向下一个路由器提交数据所需的时间)这是我的3D阵列X Y延迟0 0 461 0 1 10295 0 2 0 0 3 0 1 0 169 1 1 7089 1 2 4310 1 3 0如果不是这样的话,我希望事情现在清楚多了不要犹豫问me@MrFlick我希望这将有助于您查看我给出的示例数据集,并根据您的情况调整答案我怎样才能给它们添加轴标签和枚举,以及是否可以旋转图形,因为我做不到这很好,这就是我想要的。非常感谢。我只是想知道我们是否可以通过好奇将绘图类型更改为线段。谢谢,阿加尼我不知道你的意思。你能给一个链接到一张类似的值是什么?也可以查看scatterplot3d
包。事实上,我刚刚在网上发现了一个包含线段“my.mat”的代码
dat <- read.table(header=TRUE,
text="
X Y Latency 
0 0 461 
0 1 10295 
0 2 0 
0 3 0 
1 0 169 
1 1 7089 
1 2 4310 
1 3 0")
library("epade")
with(dat,
   bar3d.ade(xticks=unique(X),yticks=unique(Y),
            matrix(Latency,ncol=2),
                 col="gray",alpha=0.5))
library("rgl")
barplot3d_0 <- function(x,y,z,alpha=1,topcol="#ff0000",sidecol="#aaaaaa")
 {
   save <- par3d(skipRedraw=TRUE)
   on.exit(par3d(save))

  x1 <- c(rep(c(x[1],x[2],x[2],x[1]),3),rep(x[1],4),rep(x[2],4))
  z1 <-c(rep(0,4),rep(c(0,0,z,z),4))
  y1 <-c(y[1],y[1],y[2],y[2],rep(y[1],4),
          rep(y[2],4),rep(c(y[1],y[2],y[2],y[1]),))
  x2 <-c(rep(c(x[1],x[1],x[2],x[2]),2),
        rep(c(x[1],x[2],rep(x[1],3),rep(x[2],3)),))
  z2 <-c(rep(c(0,z),4),rep(0,8),rep(z,8) )
  y2 <-c(rep(y[1],4),rep(y[2],4),
        rep(c(rep(y[1],3),rep(y[2],3),y[1],y[2]),2) )
  quads3d(x1,z1,y1,col=rep(sidecol,each=4),alpha=alpha)
  quads3d(c(x[1],x[2],x[2],x[1]),rep(z,4),c(y[1],y[1],y[2],y[2]),
            col=rep(topcol,each=4),alpha=1) 
  lines3d(x2,z2,y2,col="#000000")
 }
 barplot3d <- function(x,y,z,aspect=c(1,1,1)) {
    dx <- diff(unique(sort(x)))[1]
    dy <- diff(unique(sort(y)))[1]
    mapply(function(x,y,z) {
               barplot3d_0(c(x-dx/2,x+dx/2),
                           c(y-dy/2,y+dy/2),
                           z)
           },x,y,z)
    aspect3d(aspect)
}
with(dat,barplot3d(X,Y,Latency))
axes3d()
##  Z/Y confusion can probably be sorted out ...
title3d(xlab="X",zlab="Y",ylab="Latency")