我有一个三维阵列。列的标题是“身高”、“体重”和“年龄”。如何使用hist3d
或任何其他可用功能绘制三维直方图?
file<-read.csv(file.choose(),TRUE,"")
x <- file$height
y <- file$weight
z<- file$age
xlab="Height"
ylab="Weight"
zlab="Age"
我从这段代码开始,但后来我陷入了如何绘制三维直方图的困境。谢谢你宝贵的时间
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")
从技术上讲,您所寻找的是一个3D条形图,而不是直方图(直方图是特定(X,Y)区域内离散点数量的汇总)。
这里有一个解决方案:
library("epade")
with(dat,
bar3d.ade(xticks=unique(X),yticks=unique(Y),
matrix(Latency,ncol=2),
col="gray",alpha=0.5))
或者,从demo("hist3d", pack="rgl")
修改:
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")
本文向大家介绍matplotlib 三维图表绘制方法简介,包括了matplotlib 三维图表绘制方法简介的使用技巧和注意事项,需要的朋友参考一下 1. python三维图表绘制方法简介 python三维图表的绘制算是二维图表的一个进阶版本,本质上和二维图表的绘制并无差别,唯一的区别在于使用的库略有差异。 相较于二维图表使用的pyplot库,三维图表的绘制使用的是Axes3D库。 库引入语句为:
本文向大家介绍python matplotlib绘制三维图的示例,包括了python matplotlib绘制三维图的示例的使用技巧和注意事项,需要的朋友参考一下 作者:catmelo 本文版权归作者所有 链接:https://www.cnblogs.com/catmelo/p/4162101.html 本文参考官方文档:http://matplotlib.org/mpl_toolkits/mpl
问题内容: 我想以这样的方式绘制每一步的脉冲传播,它绘制 脉冲形状。换句话说,我想要一系列的x-z图,对于 y、 像这样的东西(没有颜色):![脉搏 传播 如何使用matplotlib(或Mayavi)实现这一点?以下是我迄今为止所做的: 问题答案: Change to: and call: If you need the curve been filled with white color:
当我试图用ggplot2制作柱状图时,我在理解为什么日期、标签和中断的处理不像我在R中预期的那样有效时遇到了问题。 我正在寻找: 我约会频率的柱状图 匹配条下居中的勾号 日期标签采用格式 适当的限制;最小化网格空间边缘和最外层条之间的空白空间 我已经将我的数据上传到pastebin,以使其可复制。我已经创建了几个专栏,因为我不确定这样做的最佳方式: 以下是我尝试过的: 这就产生了这个图表。不过,我
numpy.histogram()函数将输入数组和作为两个参数。 bin数组中的连续元素用作每个bin的边界。 Matplotlib 可以将直方图的数字表示转换为图形。 pyplot子模块的plt()函数将包含数据和数组的数组作为参数,并转换为直方图。
我正在尝试使用 marplot.lib 库在 Python 中绘制直方图;但是,我一直收到此错误:“属性错误:箱必须单调增加。 这是我目前的代码: 传入的参数是信息。“信息”是一个元组列表,可能如下所示: [(4, 0.7984031936127745), (5, 0.5988023952095809), (5, 0.8739076154806492), (5, 0.736454497632824