模拟的三维散点图
- 格式:xls
- 大小:27.50 KB
- 文档页数:2
使⽤lattice进⾏⾼级绘图--lattice包(核密度图、箱线图、散点图、3D散点图、。
使⽤lattice进⾏⾼级绘图-- lattice 包lattice包提供了⽤于可视化单变量和多变量数据的⼀整套图形系统。
许多⽤户转向使⽤lattice包是因为它能很容易地⽣成⽹格图形。
⽹格图形能够展⽰变量的分布或变量之间的关系,每幅图代表⼀个或多个变量的各个⽔平。
思考下⾯的问题:纽约合唱团各声部的歌⼿⾝⾼是如何变化的?lattice包在singer数据集中提供了⾝⾼和声部的数据。
在下⾯的代码中:library(lattice)histogram(~height | voice.part, data = singer,main="Distribution of Heights by Voice Pitch",xlab="Height (inches)")结果分析:Soprano表⽰⼥⾼⾳,Tenor表⽰男⾼⾳,Alto表⽰⼥低⾳,Bass表⽰男低⾳,从图上可以看出,似乎男⾼⾳和男低⾳⽐⼥低⾳和⼥⾼⾳的⾝⾼更⾼。
在⽹格图中,调节变量的每个⽔平⽣成⼀个独⽴的⾯板。
如果指定多个调节变量,这些变量因⼦⽔平的每个组合都会⽣成⼀个⾯板。
在每个⾯板名为条带(strip)的区域中会提供⼀个标签,⽐如上图中的Soprano1、Tenor1等等。
lattice包提供了⼤量的函数来产⽣单因素图(点图、核密度图、直⽅图、条形图、箱线图),⼆元图(散点图、条形图、平⾏箱线图)和多元图(3D图、散点图矩阵)。
每个⾼⽔平的画图函数都服从下⾯的格式:graph_function(formula, data=, options)其中:q graph_function是⼀个函数;q formula指定要展⽰的变量和任意的调节变量;q data=指定数据框;q options是⽤逗号分隔的参数,⽤来调整图形的内容、安排和注释。
三维散点拟合曲线可以使用多种方法,其中一种常用的方法是使用最小二乘法进行拟合。
这种方法通过最小化数据点和拟合曲线之间的距离平方和,来得到最佳拟合曲线。
具体步骤如下:
1. 准备数据:首先,需要准备好散点数据,即一组三维空间中的点(x,y,z)。
2. 定义拟合函数:根据问题的实际情况,选择一个合适的拟合函数形式。
例如,可以使用多项式函数、指数函数、幂函数等。
3. 计算最小二乘:使用最小二乘法计算拟合函数的参数,使得数据点和拟合曲线之间的距离平方和最小。
4. 拟合曲线:将计算得到的参数代入拟合函数中,得到拟合曲线。
需要注意的是,在实际应用中,可能需要对数据进行预处理,例如去除异常值、进行数据平滑等。
此外,对于复杂的数据分布,可能需要使用更高级的拟合方法,例如非线性最小二乘法、支持向量机等。
以上是一种基本的方法,具体实现方式可能会因编程语言和具体问题的不同而有所差异。
中级绘图--散点图(散点图矩阵、⾼密度散点图、(旋转)三维散点图、⽓泡图)1 散点图散点图可⽤来描述两个连续型变量间的关系。
R中创建散点图的基础函数是plot(x, y),其中,x和y是数值型向量,代表着图形中的(x, y)点。
下⾯展⽰了⼀个例⼦。
attach(mtcars)plot(wt, mpg, main="Basic Scatter plot of MPG vs. Weight", xlab="Car Weight (lbs/1000)",ylab="Miles Per Gallon ", pch=19)abline(lm(mpg~wt), col="red", lwd=2, lty=1)lines(lowess(wt,mpg), col="blue", lwd=2, lty=2)结果分析:使⽤的是mtcars数据框,创建了⼀幅基本的散点图,wt和mpg之间的关系是⽤实⼼圆圈来表⽰的,abline()函数⽤来添加最佳拟合的线性直线,如图中红⾊实线所⽰,lowess()函数则⽤来添加⼀条平滑曲线,如图中蓝⾊虚线所⽰。
结果表⽰,随着车重的增加,每加仑英⾥数减少。
1.1 散点图矩阵R中有很多创建散点图矩阵的实⽤函数。
pairs()函数可以创建基础的散点图矩阵,下⾯的代码⽣成了⼀个散点图矩阵,包含mpg、disp、drat和wt四个变量:pairs(~mpg+disp+drat+wt, data=mtcars, main="Basic Scatter Plot Matrix")结果分析:看到所有指定变量间的⼆元关系,主对⾓线的上⽅和下⽅的六幅散点图是相同的,可以发现是关于主对⾓线对称。
通过调整参数,可以只展⽰下三⾓或者上三⾓的图形。
例如,选项upper.panel = NULL将只⽣成下三⾓的图形。
R语言绘制三维散点图的预测曲面[plain] view plain copy1.library(rgl)2.#预测脚本3.predictgrid<-function(model,xvar,yvar,zvar,res=16,type=NULL){4.xrange<-range(model$model[[xvar]])5.yrange<-range(model$model[[yvar]])6.newdata<-expand.grid(x=seq(xrange[1],xrange[2],length.out=res),7.y=seq(yrange[1],yrange[2],length.out=res))s(newdata)<-c(xvar,yvar)9.newdata[[zvar]]<-predict(model,newdata=newdata,type=type)10.newdata11.}12.#x,y,z转为列表13.df2mat<-function(p,xvar=NULL,yvar=NULL,zvar=NULL){14.if(is.null(xvar)) xvar<-names(p)[1]15.if(is.null(yvar)) yvar<-names(p)[2]16.if(is.null(zvar)) zvar<-names(p)[3]17.x<-unique(p[[xvar]])18.y<-unique(p[[yvar]])19.z<-matrix(p[[zvar]],nrow=length(y),ncol=length(x))20.m<-list(x,y,z)s(m)<-c(xvar,yvar,zvar)22.m23.}24.#交错出现两个向量元素25.interleave<-function(v1,v2) as.vector(rbind(v1,v2))26.27.m<-mtcars28.mod<-lm(mpg~wt+disp+wt:disp,data=m)29.m$pred_mpg<-predict(mod)30.mpgrid_df<-predictgrid(mod,'wt','disp','mpg')31.mpgrid_list<-df2mat(mpgrid_df)32.33.plot3d(mtcars$wt,mtcars$disp,mtcars$mpg,xlab='',yla b='',zlab='',axes=FALSE,size=.5,type='s',lit=FALSE)34.35.spheres3d(m$wt,m$disp,m$pred_mpg,alpha=0.4,type ='s',size=0.5,lit=FALSE)36.37.segments3d(interleave(m$wt, m$wt),38.interleave(m$disp, m$disp),39.interleave(m$mpg, m$pred_mpg),40.alpha=0.4,col='red'41.)42.#预测曲面43.surface3d(mpgrid_list$wt,mpgrid_list$disp,mpgrid_list $mpg,alpha=.4,front='lines',back='lines')44.#其他设置45.rgl.bbox(color='grey50',emission='grey50',xlen=0,ylen =0,zlen=0)46.rgl.material(color='black')47.axes3d(edges=c('x--','y+-','z--'), cex=.75)48.mtext3d('Society',edge='x--',line=2)49.mtext3d('Pollution',edge='y+-',line=3)50.mtext3d('Economy',edge='z--',line=3)代码结果图:案例来自书籍:R语言数据可视化。
MATLAB三维散点图的绘制MATLAB三维散点图的绘制(scatter3)图像增强、图像滤波、边缘检测的MATLAB实现MATLAB实用源代码1.图像反转MATLAB程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1); %图像反转线性变换H=uint8(J);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(H);2.灰度线性变换MATLAB程序实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系J=imadjust(I1,[0.1 0.5],[]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1]subplot(2,2,3),imshow(J);title('线性变换图像[0.1 0.5]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系K=imadjust(I1,[0.3 0.7],[]); %局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1]subplot(2,2,4),imshow(K);title('线性变换图像[0.3 0.7]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系3.非线性变换MATLAB程序实现如下:I=imread('xian.bmp');I1=rgb2gray(I);subplot(1,2,1),imshow(I1);title('灰度图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系J=double(I1);J=40*(log(J+1));H=uint8(J);subplot(1,2,2),imshow(H);title('对数变换图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系4.直方图均衡化MATLAB程序实现如下:I=imread('xian.bmp');I=rgb2gray(I);figure;subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);I1=histeq(I);figure;subplot(2,2,1);imshow(I1);subplot(2,2,2);imhist(I1);5.线性平滑滤波器用MATLAB实现领域平均法抑制噪声程序:I=imread('xian.bmp');subplot(231)imshow(I)title('原始图像')I=rgb2gray(I);I1=imnoise(I,'salt & pepper',0.02);subplot(232)imshow(I1)title('添加椒盐噪声的图像')k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波subplot(233),imshow(k1);title('3*3模板平滑滤波');subplot(234),imshow(k2);title('5*5模板平滑滤波');subplot(235),imshow(k3);title('7*7模板平滑滤波');subplot(236),imshow(k4);title('9*9模板平滑滤波');6.中值滤波器用MATLAB实现中值滤波程序如下:I=imread('xian.bmp');I=rgb2gray(I);J=imnoise(I,'salt&pepper',0.02);subplot(231),imshow(I);title('原图像');subplot(232),imshow(J);title('添加椒盐噪声图像');k1=medfilt2(J); %进行3*3模板中值滤波k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波subplot(233),imshow(k1);title('3*3模板中值滤波');subplot(234),imshow(k2);title('5*5模板中值滤波');subplot(235),imshow(k3);title('7*7模板中值滤波');subplot(236),imshow(k4);title('9*9模板中值滤波');7.用Sobel算子和拉普拉斯对图像锐化:I=imread('xian.bmp');subplot(2,2,1),imshow(I);axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(2,2,2),imshow(I1);title('二值图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系H=fspecial('sobel'); %选择sobel算子J=filter2(H,I1); %卷积运算subplot(2,2,3),imshow(J);title('sobel算子锐化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系h=[0 1 0,1 -4 1,0 1 0]; %拉普拉斯算子J1=conv2(I1,h,'same'); %卷积运算subplot(2,2,4),imshow(J1);title('拉普拉斯算子锐化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系8.梯度算子检测边缘用MATLAB实现如下:I=imread('xian.bmp');subplot(2,3,1);imshow(I);axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(2,3,2);imshow(I1);title('二值图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I2=edge(I1,'roberts'); figure;subplot(2,3,3);imshow(I2);title('roberts算子分割结果'); axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I3=edge(I1,'sobel'); subplot(2,3,4);imshow(I3);title('sobel算子分割结果'); axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I4=edge(I1,'Prewitt'); subplot(2,3,5);imshow(I4);title('Prewitt算子分割结果');axis([50,250,50,200]); grid on; %显示网格线axis on; %显示坐标系9.LOG算子检测边缘用MATLAB程序实现如下:I=imread('xian.bmp'); subplot(2,2,1);imshow(I);title('原始图像');I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title('灰度图像');I2=edge(I1,'log'); subplot(2,2,3);imshow(I2);title('log算子分割结果');10.Canny算子检测边缘用MATLAB程序实现如下:I=imread('xian.bmp'); subplot(2,2,1);imshow(I);title('原始图像')I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title('灰度图像');I2=edge(I1,'canny');subplot(2,2,3);imshow(I2);title('canny算子分割结果');11.边界跟踪(bwtraceboundary函数)clcclear allI=imread('xian.bmp');figureimshow(I);title('原始图像');I1=rgb2gray(I); %将彩色图像转化灰度图像threshold=graythresh(I1); %计算将灰度图像转化为二值图像所需的门限BW=im2bw(I1, threshold); %将灰度图像转化为二值图像figureimshow(BW);title('二值图像');dim=size(BW);col=round(dim(2)/2)-90; %计算起始点列坐标row=find(BW(:,col),1); %计算起始点行坐标connectivity=8;num_points=180;contour=bwtraceboundary(BW,[row,col],'N',connectivity,nu m_points);%提取边界figureimshow(I1);hold on;plot(contour(:,2),contour(:,1), 'g','LineWidth' ,2);title('边界跟踪图像');12.Hough变换I= imread('xian.bmp');rotI=rgb2gray(I);subplot(2,2,1);imshow(rotI);title('灰度图像');axis([50,250,50,200]);grid on;axis on;BW=edge(rotI,'prewitt');subplot(2,2,2);imshow(BW);title('prewitt算子边缘检测后图像');axis([50,250,50,200]);grid on;axis on;[H,T,R]=hough(BW);subplot(2,2,3);imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit'); title('霍夫变换图');xlabel('\theta'),ylabel('\rho');axis on , axis normal, hold on;P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));x=T(P(:,2));y=R(P(:,1));plot(x,y,'s','color','white');lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7); subplot(2,2,4);,imshow(rotI);title('霍夫变换图像检测');axis([50,250,50,200]);grid on;axis on;hold on;max_len=0;for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow'); plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');len=norm(lines(k).point1-lines(k).point2);if(len>max_len)max_len=len;xy_long=xy;endendplot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');13.直方图阈值法用MATLAB实现直方图阈值法:I=imread('xian.bmp');I1=rgb2gray(I);figure;subplot(2,2,1);imshow(I1);title('灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系[m,n]=size(I1); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(I1==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endsubplot(2,2,2),bar(0:255,GP,'g') %绘制直方图title('灰度直方图')xlabel('灰度值')ylabel('出现概率')I2=im2bw(I,150/255);subplot(2,2,3),imshow(I2);title('阈值150的分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I3=im2bw(I,200/255); %subplot(2,2,4),imshow(I3);title('阈值200的分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系14. 自动阈值法:Otsu法用MATLAB实现Otsu算法:clcclear allI=imread('xian.bmp');subplot(1,2,1),imshow(I);title('原始图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系level=graythresh(I); %确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title('Otsu法阈值分割图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系15.膨胀操作I=imread('xian.bmp'); %载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title('灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',1); %生成圆形结构元素I2=imdilate(I1,se); %用生成的结构元素对图像进行膨胀subplot(1,2,2);imshow(I2);title('膨胀后图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系16.腐蚀操作MATLAB实现腐蚀操作I=imread('xian.bmp'); %载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title('灰度图像')axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系se=strel('disk',1); %生成圆形结构元素I2=imerode(I1,se); %用生成的结构元素对图像进行腐蚀subplot(1,2,2);imshow(I2);title('腐蚀后图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系17.开启和闭合操作用MATLAB实现开启和闭合操作I=imread('xian.bmp'); %载入图像subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1); %采用半径为1的圆作为结构元素I2=imopen(I1,se); %开启操作I3=imclose(I1,se); %闭合操作subplot(2,2,3),imshow(I2);title('开启运算后图像');axis([50,250,50,200]);axis on; %显示坐标系subplot(2,2,4),imshow(I3);title('闭合运算后图像');axis([50,250,50,200]);axis on; %显示坐标系18.开启和闭合组合操作I=imread('xian.bmp'); %载入图像subplot(3,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I);subplot(3,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1);I2=imopen(I1,se); %开启操作I3=imclose(I1,se); %闭合操作subplot(3,2,3),imshow(I2);title('开启运算后图像');axis([50,250,50,200]);axis on; %显示坐标系subplot(3,2,4),imshow(I3);title('闭合运算后图像');axis([50,250,50,200]);axis on; %显示坐标系se=strel('disk',1);I4=imopen(I1,se);I5=imclose(I4,se);subplot(3,2,5),imshow(I5); %开—闭运算图像title('开—闭运算图像');axis([50,250,50,200]);axis on; %显示坐标系I6=imclose(I1,se);I7=imopen(I6,se);subplot(3,2,6),imshow(I7); %闭—开运算图像title('闭—开运算图像');axis([50,250,50,200]);axis on; %显示坐标系19.形态学边界提取利用MATLAB实现如下:I=imread('xian.bmp'); %载入图像subplot(1,3,1),imshow(I);title('原始图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I1=im2bw(I);subplot(1,3,2),imshow(I1);title('二值化图像');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系I2=bwperim(I1); %获取区域的周长subplot(1,3,3),imshow(I2);title('边界周长的二值图像');axis([50,250,50,200]);grid on;axis on;20.形态学骨架提取利用MATLAB实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on;I1=im2bw(I);subplot(2,2,2),imshow(I1);title('二值图像');axis([50,250,50,200]);axis on;I2=bwmorph(I1,'skel',1); subplot(2,2,3),imshow(I2);title('1次骨架提取');axis([50,250,50,200]);axis on;I3=bwmorph(I1,'skel',2); subplot(2,2,4),imshow(I3);title('2次骨架提取'); axis([50,250,50,200]); axis on;21.直接提取四个顶点坐标I = imread('xian.bmp');I = I(:,:,1);BW=im2bw(I);figureimshow(~BW)[x,y]=getpts。
第29卷第4期2020年8月㊀实用心电学杂志JournalofPracticalElectrocardiology㊀Vol.29㊀No.4Aug.2020㊀专栏主持:景永明三维Lorenz散点图的解析策略景永明[摘要]㊀目的㊀探讨三维Lorenz散点图的分析技巧及解析策略ꎮ方法㊀利用立体几何软件ꎬ制作三维Lorenz散点图的数学模型ꎬ结合频发室性早搏及其二㊁三联律的典型病例(DMS公司)ꎬ在平面解析几何㊁空间解析几何㊁图论㊁排列组合的基础上研究三维Lorenz散点图的空间分布规律ꎬ总结其特征及解析技巧ꎮ结果㊀频发室性早搏及其二㊁三联律的三维Lorenz散点图规律性极强:xOy面㊁yOz面等同于二维Lorenz散点图ꎬ反映相邻RR间期的规律性ꎻzOx面表达相隔RR间期极强的规律性ꎬ表现出对称的特征ꎻxyz面类似于二维差值散点图ꎬ表达相邻RR间期差别程度的规律性ꎬ以空间等速线为中心ꎬ满足向量守衡定律ꎮ结论㊀三维Lorenz散点图整合了二维Lorenz散点图与二维差值散点图的所有优势ꎬ还提供了新的视角即zOx面ꎬ为研究相隔RR间期的规律性提供了方便ꎮ三维Lorenz散点图的解析策略是ꎬxOy面㊁yOz面在二维Lorenz散点图的基础上分别使用 后加心搏法 前加心搏 补三搏二期点为四搏三期点ꎻzOx面结合对称的特点了解RR间期的分类特征ꎻxyz面在向量守衡的基础上分析心律失常事件ꎮ[关键词]㊀三维Lorenz散点图ꎻ二维Lorenz散点图ꎻ二维差值散点图ꎻ室性早搏ꎻ相邻RR间期ꎻ相隔RR间期ꎻ动态心电图[中图分类号]㊀R540.41ꎻR541.7㊀[文献标志码]㊀A㊀[文章编号]㊀2095-9354(2020)04-0229-09DOI:10.13308/j.issn.2095-9354.2020.04.001[引用格式]㊀景永明.三维Lorenz散点图的解析策略[J].实用心电学杂志ꎬ2020ꎬ29(4):229-237.Analyticalstrategiesofthree ̄dimensionalLorenzscatterplot㊀JingYong ̄ming㊀(DepartmentofElectrocardi ̄ogramꎬtheSecondAffiliatedHospitalofZhengzhouUniversityꎬZhengzhouHenan450014ꎬChina)[Abstract]㊀Objective㊀Toexploretheanalyticalskillsandstrategiesofthree ̄dimensionalLorenzscatterplot.Methods㊀Mathematicalmodelofthree ̄dimensionalLorenzscatterplotwasmadebyusingsolidgeometrysoftware.Basedonplaneanalyticgeometryꎬspatialanalyticgeometryꎬgraphtheoryꎬandpermutationandcombinationꎬthespatialdistributionrulesofthree ̄dimensionalLorenzscatterplotwerestudiedꎻitscharacteristicsandanalyticalskillsweresummarizedꎬinacombinationwithtypicalcaseswithfrequentventricularprematurebeatsꎬandtheirbi ̄geminyandtrigeminy(DMSCompany).Results㊀Thethree ̄dimensionalLorenzscatterplotsoffrequentventricularprematurebeatsꎬandtheirbigeminyandtrigeminyreflectextremelystrongregularity.ThexOyandyOzsurfacesareequivalentoftwo ̄dimensionalLorenzscatterplotsꎬwhichreflecttherulesofadjacentRRintervals.ThezOxsurfaceexpressesextremelystrongregularityofseparatedRRintervalsꎬwhichexhibitssymmetricfeatures.Thexyzsurfaceissimilartotwo ̄dimensionaldifferencescatterplotꎬwhichexpressestheregularityofdifferenceofadjacentRRinter ̄vals.Andthesurfacecenteredatspatialconstantvelocitylinesatisfiesthelawofvectorconservation.ConclusionThethree ̄dimensionalLorenzscatterplotintegratesalltheadvantagesoftwo ̄dimensionalLorenzscatterplotandtwo ̄dimensionaldifferencescatterplot.ItalsofacilitatestheresearchontheregularityofseparatedRRintervalsbyprovidinganewperspectiveofzOxsurface.Theanalyticalstrategiesofthree ̄dimensionalLorenzscatterplotareasfollows.ForthexOyandyOzsurfacesꎬthree ̄impulse ̄and ̄two ̄intervalpointissupplementedintofour ̄impulse ̄and ̄three ̄intervalpointseparatelyinthemethodsof addcardiacimpulseinback and addcardiacimpulseinfront basedontwo ̄dimensionalLorenzscatterplot.InthezOxsurfaceꎬtheclassificationcharacteristicsofRRintervalscanbeknownbyitssymmetricfeatures.Inthexyzsurfaceꎬarrhythmiaeventscanbeanalyzedonthebasisofvec ̄torconservation.[Keywords]㊀three ̄dimensionalLorenzscatterplotꎻtwo ̄dimensionalLorenzscatterplotꎻtwo ̄dimensionaldiffe ̄rencescatterplotꎻprematureventricularcontractionꎻadjacentRRintervalꎻseparatedRRintervalꎻambulatoryelectrocardiography㊀㊀①㊀由于连续3个相邻的心搏(QRS波群ꎬ简称为R)中间夹有2个相邻的RR间期ꎬ前后2个RR间期分别为横(x)㊁纵(y)坐标就可以描记1个二维Lorenz散点图ꎬ故称二维Lorenz散点图为 三搏两期点 ꎮ基于此认识ꎬ二维Lorenz散点集落就以心搏名称的排列组合来命名ꎮ比如ꎬ连续3个正常心搏(N)代表窦律点集(NNN)ꎻ连续3个室性心搏(V)代表室律点集(VVV)ꎻ还有早搏前点(NNV)㊁早搏点集(NVN)㊁早搏后点(VNN)㊁房室早连发(NVS)等ꎮ心搏名称的排列组合可以命名任何复杂的名称ꎬ如VSN㊁SVN等ꎬ表述词语难以描述的散点集落ꎬ故强烈推荐此命名法ꎮ三维Lorenz散点图(立体心电散点图)是以连续三个相邻的RR间期为横(x)㊁纵(y)㊁竖(z)坐标ꎬ在空间直角坐标系中所描绘的动态心电图的RR间期散点集[1]ꎮ它与二维Lorenz散点图类似ꎬ只是二维Lorenz散点图表达的是两个相邻RR间期的规律性ꎬ是 三搏两期 点①ꎬ而三维Lorenz散点图是 四搏三期 点②ꎮ三维Lorenz散点图不仅整合了二维Lorenz散点图与二维差值散点图的所有优势ꎬ而且提供了zOx投影面ꎬ为相隔RR间期规律性的研究提供了便利ꎮ可以说ꎬ三维Lorenz散点图是二维散点图技术的 升级版 ꎬ是快速处理心电大数据的前沿技术ꎮ心电散点图是表达心律失常的简洁语言ꎬ也是快速分析动态心电图的高效工具[2]ꎮ要读懂这种 语言 ꎬ就要揭示它的含义ꎻ要运用这种 工具 ꎬ就要熟悉它的性能ꎮ本文利用平面/空间解析几何㊁图论㊁排列组合等相关知识ꎬ研究三维Lorenz散点图的空间分布规律ꎬ并总结三维Lorenz散点图的分析技巧及解析策略ꎮ1㊀三维Lorenz散点图的概念、原理及命名以偶发室性早搏的心电片段(图1)为例ꎬ设正常窦性心搏为Nꎬ室性早搏为VꎬNN周期为xꎬNV周期为aꎬ早搏代偿间歇完全ꎬ则VN=2x-aꎮ按照三维Lorenz散点图的概念ꎬ偶发室性早搏的心电图片段可以描记出:NNNN(xꎬxꎬx)㊁NNNV(xꎬxꎬa)㊁NNVN(xꎬaꎬ2x-a)㊁NVNN(aꎬ2x-aꎬx)㊁VNNN(2x-aꎬxꎬx)这5个空间点ꎮ由于三维Lorenz散点图是 四搏三期点 ꎬ故本文推荐以连续4个心搏的名称命名散点集落ꎮ为了叙述方便ꎬ依据4个心搏的特征ꎬ将NNNN重命名为 窦性点集 ꎻ将早搏的4个特征点集分别重命名为起(NNNV)㊁始(NNVN)㊁终(NVNN)㊁止(VNNN)ꎮ如果有频发室性早搏二联律ꎬ则可出现NVNV(aꎬ2x-aꎬa)㊁VNVN(2x-aꎬaꎬ2x-a)点集ꎻ如果有三联律ꎬ还可出现VNNV(2x-aꎬxꎬa)点集ꎮ由此可见ꎬ以心搏名称命名散点集落还有一个好处ꎬ就是能够依据散点集落的名称写出其点的三维坐标ꎮ例如ꎬVNNV点集的3个图1㊀偶发室性早搏Fig.1㊀Occasionalprematureventricularcontraction032 实用心电学杂志㊀㊀第29卷㊀㊀①㊀三维Lorenz散点图可以随意旋转ꎬ从不同角度能看到不同的散点图形态ꎬ而只有标准视角下才能看到标准形态ꎮ为了准确描述三维Lorenz散点图的形态特征ꎬ分别沿x轴㊁y轴㊁z轴㊁空间等速线方向观察ꎬ相当于看到了三维Lorenz散点图在yOz面㊁zOx面㊁xOy面㊁xyz面的投影ꎮ只有多角度观察ꎬ才能全面把握三维Lorenz散点图所携带的节律信息ꎮ而对上述4个方位的观察ꎬ基本涵盖了三维Lorenz散点图的所有信息特征ꎬ是必看的标准观察面ꎮ②㊀乾坤线是指过乾(1ꎬ1ꎬ1)㊁坤(-1ꎬ-1ꎬ-1)两点的直线ꎮ此线是八卦立方体的体对角线ꎬ也是三维Lorenz散点图的空间等速线ꎮ③㊀在三维空间中ꎬx=y=z线上的点ꎬ横(x)㊁纵(y)㊁竖(z)坐标处处相等ꎬ落在此线的上三维Lorenz散点ꎬ代表3个相邻的RR间期相等ꎬ相邻的RR间期分别为VN㊁NN㊁NV间期ꎬ则其三维坐标就是(2x-aꎬxꎬa)ꎮ实际上ꎬ1个三维Lorenz散点就描述了1个4心搏心电图片段ꎬ它的空间坐标就是3个相邻的RR间期ꎮ要研究三维Lorenz散点图的空间分布规律ꎬ就必须先认识空间直角坐标系ꎮ平面直角坐标中相互垂直的横(x)㊁纵(y)坐标轴把二维平面分成了Ⅰ(+ꎬ+)㊁Ⅱ(-ꎬ+)㊁Ⅲ(-ꎬ-)㊁Ⅳ(+ꎬ-)4个象限(图2)ꎻ空间直角标系是相互垂直的横(x)㊁纵(y)㊁竖(z)坐标轴把三维空间分成了8个卦限(图3)ꎮA:xOy面上的4个卦限分别为Ⅰ(+ꎬ+ꎬ+)㊁Ⅱ(-ꎬ+ꎬ+)㊁Ⅲ(-ꎬ-ꎬ+)㊁Ⅳ(+ꎬ-ꎬ+)ꎻB:xOy面下的4个卦限分别为Ⅴ(+ꎬ+ꎬ-)㊁Ⅵ(-ꎬ+ꎬ-)㊁Ⅶ(-ꎬ-ꎬ-)㊁Ⅷ(+ꎬ-ꎬ-)图2㊀空间直角坐标系的二维视角(沿z轴俯视)Fig.2㊀Two ̄dimensionalviewofaspacerectangularcoordinatesystem(overlookingalongzaxis)相互垂直的3个坐标轴两两相交ꎬ形成3个坐标平面(xOy㊁yOz㊁zOx)ꎬ把三维空间分成了8个卦限图3㊀空间直角坐标系Fig.3㊀Spatialcoordinatesystem为了研究空间直角坐标中8个卦限的位置关系ꎬ在每个卦限里作1个 单位点 (图4)ꎮ由于这8个单位点与«易经»中的 八卦 有一一对应的关系(表1)ꎬ因此ꎬ采用乾㊁巽㊁艮㊁离㊁兑㊁坎㊁坤㊁震8个字ꎬ分别表示Ⅰ Ⅷ卦限中的8个 单位点 ꎬ依次连结八卦点成一正立方体ꎮ图4㊀8个卦限的 单位点 组成的 八卦正立方体 Fig.4㊀ CubeoftheEightDiagrams composedof unitpoints in8octants表1㊀空间直角坐标系的卦限与卦名对照表Tab.1㊀Cross ̄referencetableofoctantandnameofhexagraminspatialcoordinatesystem卦限坐标卦名卦相Ⅰ(1ꎬ1ꎬ1)乾☰Ⅱ(-1ꎬ1ꎬ1)巽☴Ⅲ(-1ꎬ-1ꎬ1)艮☶Ⅳ(1ꎬ-1ꎬ1)离☲Ⅴ(1ꎬ1ꎬ-1)兑☱Ⅵ(-1ꎬ1ꎬ-1)坎☵Ⅶ(-1ꎬ-1ꎬ-1)坤☷Ⅷ(1ꎬ-1ꎬ-1)震☳从不同角度观察此立方体ꎬ八卦点的位置关系各不相同ꎮ如果沿3个坐标轴观察ꎬ相当于8个卦点投影在了xOy㊁yOz㊁zOx三个坐标平面上(平面方程分别为z=0㊁x=0㊁y=0)ꎬ称这3个投影面为标准观察面①(图5A 图5C)ꎮ从图中可以看出ꎬ3个标准观察面只能看到4个卦点ꎬ另外4个卦点都被掩盖了(即两两重叠)ꎻ如果沿 八卦立方体 的体对角线(即乾坤线②ꎬ直线方程为x=y=zꎬ故称 空间等速线 ③)观察ꎬ八卦点相当于投影在x+y+z=0面(见图5Dꎬ简称xyz投影面ꎬ其法线④为空间等速线)ꎮ132 第4期㊀㊀景永明.三维Lorenz散点图的解析策略A:xOy面(z=0)ꎻB:yOz面(x=0)ꎻC:zOx面(y=0)ꎻD:xyz面(x+y+z=0)图5㊀八卦立方体的4个标准观察面Fig.5㊀FourstandardobservationsurfacesofcubeoftheEightDiagrams在此观察面上ꎬ3个坐标轴的投影角度两两相差120ʎꎬ乾坤体对角线投影在坐标原点ꎬ其余3条体对角线 震巽㊁坎离㊁艮兑分别与x㊁y㊁z轴重叠ꎬ六卦点的投影分居坐标轴正㊁负两侧ꎮ相对而言ꎬxyz观察面能看到的卦点最多ꎬ也是观察三维散点图时必看的标准观察面之一ꎮ2㊀典型病例解析室性早搏是最常见的心律失常之一ꎬ其散点图规律性极强ꎮ首先解析频发室性早搏合并二㊁三联律的典型病例(图6ꎬ扫描文题右侧OSID码ꎬ看彩图)ꎮ从图中可以看出ꎬ非标准观察面的三维Lorenz散点图变化多端ꎬ形态特征不易把握ꎻ标准观察面的三维Lorenz散点图规律性较强ꎬ是研究的重点ꎮ仔细观察可发现ꎬ三维Lorenz散点图的xOy面㊁yOz面形态与二维Lorenz散点图(图7A)完全一致ꎻxyz面与二维差值散点图(图7B)类似ꎻzOx面基本关于空间等速线对称ꎮ下面结合三维Lorenz散点图的数学模型(图8㊁图9)ꎬ解析本例三维Lorenz散点图的4个标准观察面ꎬ并总结其散点图特征ꎮ2.1㊀xOy㊁yOz观察面:了解相邻RR间期的规律性由于xOy面是沿z轴观察ꎬ只能看到x㊁y(即前相当于二维Lorenz散点图ꎬ都是了解相邻RR间期规律性的窗口ꎻ其散点图的形态与二维Lorenz散点图完全一样ꎬ只是名称有所区别ꎮ结合xOy面㊁yOz面的数学模型(图9A㊁图9B)ꎬ可知本例xOy面㊁yOz面(图6C㊁图6D)各部分的含义ꎮ类比二维Lorenz散点图的 三搏两期 名称ꎬ三维Lorenz散点图的四搏三期 名称可在二维Lorenz散点图名称的基础上补足四搏即可:xOy面后补心搏(如NVNңNVNN或NVNV)ꎻyOz面前补心搏(如NVNңNNVN或VNVN)ꎮ本例xOy面中沿等速线分布的是NNNN(窦律)与NNNV(起)点集两种成分ꎻ短长周期区呈垂直分布的是绿色的NVNN(终)与NVNV(二联律)点集两种成分ꎻ长短周期区呈水平分布的是NNVN(始)点集ꎬ以主轴斜率0.5分布的是VNNN(止)与VNNV(三联律)点集两种成分ꎮ在频发室性早搏的动态心电图病例中ꎬ分析xOy面时应用 后加心搏 补足四心搏时ꎬ总会面临补 N 还是 V 的选择ꎮ这意味着从xOy面只能看到三维Lorenz散点图中的一部分特征点集ꎻ至于视线背后有无隐藏的特征点集ꎬ则需要旋转观察后才能确定ꎮ换句话说ꎬ二维Lorenz散点图所包含的节律信息不如三维Lorenz散点图全面㊁详细ꎮyOz面232 实用心电学杂志㊀㊀第29卷A㊁B:非标准观察面ꎻC:xOy面ꎻD:yOz面ꎻE:zOx面ꎻF:xyz面(右手坐标系)图6㊀频发室性早搏合并二㊁三联律的三维Lorenz散点图(DMS公司)Fig.6㊀Three ̄dimensionalLorenzscatterplotoffrequentventricularprematurebeatscomplicatedbybigeminyandtrigeminy(DMSCompany)332 第4期㊀㊀景永明.三维Lorenz散点图的解析策略A㊁B:非标准观察面ꎻC:xOy面ꎻD:yOz面ꎻE:zOx面ꎻF:xyz面(左手坐标系)O㊁A㊁B㊁C㊁D㊁E㊁F分别代表NNNN㊁NNNV㊁NNVN㊁NVNN㊁VNNN㊁VNVN㊁NVNV㊁VNNV点图8㊀频发室性早搏二㊁三联律的三维Lorenz散点图特征点模型Fig.8㊀Characteristicpointmodelofthree ̄dimensionalLorenzscatterplotoffrequentventricularprematurebeatscomplicatedbybigeminyandtrigeminy432 实用心电学杂志㊀㊀第29卷(相隔RR间期)的分布规律ꎮ结合zOx面的数学模型(图9C)ꎬ可以破解此观察面散点图(图6E)各部分的含义ꎮ仔细观察发现ꎬ此投影面的散点图总体上对称于等速线分布ꎮ本例中NNNN点集分布于等速线ꎬ等速线近端是绿色的NVNV点集ꎬ远端是黑色的VNVN点集(部分重叠在NNNN中)ꎻ短长周期区分布有主轴斜率为2的NNVN(始)点集㊁呈垂直分布的NVNN(终)点集ꎻ长短周期区分布有主轴斜率为0 5的VNNN(止)点集㊁呈水平分布的NNNV(起)点集ꎻ起与终点集㊁始与止点集对称于等速线分布ꎬ是由于两组点集的横(x)㊁纵(z)坐标互换ꎬVNNV(三联律点集)的横(x)㊁纵(z)坐标互换后变为NVVN点集ꎮ由于本例无成对室性早搏ꎬ故VNNV点集无对称成分出现ꎮ从理论上讲ꎬ频发室性早搏合并成对室性早搏或室性连发的zOx面ꎬ总会表现出对称的特性ꎮ因为相隔RR间期的规律相当于RR间期的无向(双向)连通图①(图10)ꎬ4个RR间期NN㊁NV㊁VN㊁VV双向连通成16个四搏三期点ꎬ其中自身连通的4个特征点集NNNN㊁NVNV㊁VNVN㊁VVVV分布于等速线的不同高度ꎻNNVV与VVNN㊁NVVN与VNNV㊁图10㊀RR间期的无向(双向)连通图Fig.10㊀Undirected(two ̄way)connectivitydiagramofRRintervalsNNNV与NVNN㊁NVVV与VVNV㊁VVVN与VNVV㊁NNVN与VNVV这6组双向连通的四搏三期点ꎬ均为横(x)㊁纵(z)坐标互换的特征点集ꎬ且均对称分布于等速线的两侧ꎮ由于NNVN(xꎬaꎬ2x-a)㊁VNNN(2x-aꎬxꎬx)中ꎬNN周期(x)是变量ꎬ联律间期(a)相对固定ꎬ所以NNVN的主轴斜率理论值为2ꎬ即dzᶄdxᶄ=d(2x-a)dx=2ꎻVNNN的主轴斜率理论值为0.5ꎬ即dzᶄdxᶄ=dxd(2x-a)=0.5ꎮ2.3㊀xyz观察面:了解相邻RR间期差别规律的最佳窗口xyz投影面是沿空间等速线(又称 等速线观察面 )观察ꎮ等速线是xyz面的法线ꎬ投影在坐标原点ꎬ而连续等周期都分布在坐标原点(图11)ꎮ3个坐标只要有差别ꎬ就会跳出原点ꎬ且差别越大ꎬ跳出越远ꎬ故xyz面是了解相邻RR间期差别规律的最佳窗口ꎮ从等速线方向观察xyz面ꎬ可知x㊁y㊁z坐标轴两两相差120ʎꎮ把xyz投影面等分成6个区域(图12A)ꎬ分别为xO-y㊁xO-z㊁yO-z㊁yO-x㊁zO-y㊁zO-x区ꎮ当我们在空间直角坐标系中描记点P(0.26ꎬ0.45ꎬ0.64)时ꎬ此点投影在xyz面的zO-x区(图11B)ꎬ注意到zO-x区的点符合z>y>x的规律ꎬ可总结空间点在各区位的分布规律如下:正轴值最大ꎬ负轴值最小ꎬ无关轴居中(图12B)ꎻ如果空间点投影到坐标轴(区边界)上ꎬ则坐标轴正侧值最大ꎬ负侧值最小ꎬ其余两值相等ꎮ例如ꎬ如果空间点投影在x轴正侧ꎬ则x>y=zꎻ如果空间点投A:非标准观察面ꎬ连续等周期点P(0.4ꎬ0.4ꎬ0.4)分布于等速线ꎻB:xyz投影面ꎬ点P(0.26ꎬ0.45ꎬ0.64)分布在zO-x区ꎬ坐标规律为z>y>x图11㊀空间点在三维坐标系中的分布规律Fig.11㊀Distributionrulesofspatialpointsinthree ̄dimensionalcoordinatesystem532 第4期㊀㊀景永明.三维Lorenz散点图的解析策略图12㊀xyz面的分区(A)及坐标分布规律(B)Fig.12㊀Subareasofxyzsurface(A)anddistributionrulesofcoordinate(B)影在x轴负侧ꎬ则x<y=zꎬ其余轴类似ꎮ空间点在xyz面的分布规律可以总结为:三值相等居当中ꎬ两值相等守边疆ꎬ六区三值各不等ꎬ大小排序看名称(即区位名称暗含空间点的坐标值特征)ꎮ结合xyz面的数学模型(图9D)ꎬ可以破解此观察面散点图(图6F)各部分的含义(注意:DMS公司的三维Lorenz散点图是右手坐标系ꎬ而数学模型中使用的是左手坐标系ꎬ二者是镜像对称关系)ꎮ从图6F㊁图7B可以看出ꎬ三维Lorenz散点图的xyz面与二维差值散点图非常相似ꎬ散点名称也一样ꎬ都表达了相邻RR间期的差别规律ꎬ由此可以将二维差值散点图看作是三维Lorenz散点图中的一个标准观察面ꎮ这也从侧面证明了二维Lorenz散点图与二维差值散点图的优势互补关系ꎮ本例中NNNN点集中居原点ꎬ早搏的起(NNNV)㊁始(NNVN)㊁终(NVNN)㊁止(VNNN)点集分别分布于z轴负侧㊁zO-y区角平分线(垂直于x轴)㊁yO-x区角平分线(垂直于z轴)㊁x轴正侧ꎻ二联律点集(NVNV㊁VNVN)分别分布于y轴正㊁负两侧ꎻ三联律点集(VNNV)分布于xO-z区的角平分线(垂直于y轴)ꎮ从空间等速线观察三维Lorenz散点图ꎬ发现各特征点集都向NNNN点集延伸ꎻ结合三维Lorenz散点图的坐标ꎬ可以计算出各特征点集之间的空间角度与投影角度ꎮ例如:在单发室性早搏事件(各特征点集均减NNNN点的坐标ꎬ相当于坐标原点平移到了NNNN点ꎬ不影响各点集角度的计算)中ꎬ有NNNV(xꎬxꎬa)-NNNN(xꎬxꎬx)=d1(0ꎬ0ꎬa-x)ꎻ㊀NNVN(xꎬaꎬ2x-a)-NNNN(xꎬxꎬx)=d2(0ꎬa-xꎬx-a)ꎻ㊀NVNN(aꎬ2x-aꎬx)-NNNN(xꎬxꎬx)=d3(a-xꎬx-aꎬ0)ꎻ㊀VNNN(2x-aꎬxꎬx)-NNNN(xꎬxꎬx)=d4(x-aꎬ0ꎬ0)ꎬ㊀其中ꎬd1是z轴上的点ꎻd4是x轴上的点ꎻd1㊁d4的空间角度应为90ʎꎬ但在xyz面上的投影角度是60ʎꎮ设d2㊁d3的空间角度为αꎬ则cosα=d2 d3d2ˑd3=x-a()22x-a()ˑ2x-a()=12ꎬα=120ʎꎮd2㊁d3满足平面方程xᶄ+yᶄ+zᶄ=0ꎬ故是xyz面上的点ꎬ且d2㊁d3的投影角度就是其空间角度120ʎꎻd1+d2+d3+d4=0ꎬ表明单发室性早搏事件满足向量守衡定律①ꎮ而在二联律事件中ꎬ有NVNV(aꎬ2x-aꎬa)-NNNN(xꎬxꎬx)=d5(a-xꎬx-aꎬa-x)ꎻ㊀VNVN(2x-aꎬaꎬ2x-a)-NNNN(xꎬxꎬx)=d6(x-aꎬa-xꎬx-a)ꎮ㊀从坐标上看ꎬd5㊁d6满足xᶄ=-yᶄ=zᶄ的直线方程ꎬ过坎(1ꎬ-1ꎬ1)㊁离(-1ꎬ1ꎬ-1)两点ꎬ即 八卦立方体 的坎离体对角线ꎮ所以二联律点集在xyz面的投影与y轴重叠ꎬ分居正负两侧ꎬ代表长短长周期与短长短周期的反复交替ꎮd5+d6=0ꎬ表明二联律事件满足向量守衡定律ꎮ在三联律事件中ꎬ有VNNV(2x-aꎬxꎬa)-NNNN(xꎬxꎬx)=632 实用心电学杂志㊀㊀第29卷d7(x-aꎬ0ꎬa-x)ꎬ㊀其中ꎬd7满足平面方程xᶄ+yᶄ+zᶄ=0ꎬ故d7也是xyz面上的点ꎬd7㊁d2㊁d3三点共面ꎻd7投影在xO-z区的角平分线ꎬ垂直于y轴(yᶄ=0ꎻd2投影在zO-y区的角平分线ꎬ垂直于x轴(xᶄ=0)ꎻd3投影在yO-x区的角平分线ꎬ垂直于z轴(zᶄ=0)ꎬd7㊁d2㊁d3在xyz面两两相差120ʎꎮd7+d2+d3=0ꎬ表明三联律事件满足向量守衡定律ꎮ3 解析策略小结三维Lorenz散点图虽然是立体的ꎬ但屏幕显示的立体散点图不过是不同平面上的二维投影ꎬ观察角度的变化决定着立体图形的投影形态ꎮ非标准观察面的三维Lorenz散点图可以帮助我们理解立体图形的空间形态ꎬ但由于图形形态多变ꎬ因此仍无法精确描述ꎮ三维Lorenz散点图的解析主要以4个标准观察面为主ꎬ其中xOy面㊁yOz面就是二维Lorenz散点图ꎬ反映相邻RR间期的规律性ꎻxyz面类似二维差值散点图ꎬ反映相邻RR间期的差别程度ꎻzOx面反映相隔RR间期的规律性ꎬ多数节律表现出对称的特征ꎬ是三维Lorenz散点图最美的视角ꎮxOy面㊁yOz面的解析策略是在二维Lorenz散点图的基础上认识三维Lorenz散点图ꎬ先按二维Lorenz散点图标注各特征点集ꎬxOy面后加心搏补足四搏ꎬyOz面前加心搏补足四搏ꎮxyz面类似差值散点图ꎬ以空间等速线为中心ꎬ心律失常事件满足向量守衡定律ꎮ此观察面上各特征点集的重叠最少ꎬ规律性较强ꎬ具备二维差值散点图的所有优势ꎮ不同频率的连续等周期虽然在此面重叠ꎬ但稍做旋转就能分别显示出来ꎬ体现了三维Lorenz散点图较二维差值散点图的优势ꎮzOx面多以空间等速线为对称轴ꎬ从此面分析不同性质的心动周期的排列组合情况ꎬ就是查看散点图的对称成分与不对称成分的对比组合及其位置走向ꎮ从此面解析简洁明了ꎬ规律性极强ꎮ总之ꎬ三维Lorenz散点图较详尽地传达了动态心电图的节律信息ꎬ多角度观察便于了解心律失常的电生理机制ꎬ有利于树立心律失常的整体观ꎮ三维Lorenz散点图不仅整合了二维Lorenz散点图与二维差值散点图的所有优势ꎬ还提供了zOx面ꎬ为研究相隔RR间期的规律性提供了便利ꎮ三维Lorenz散点图是散点图技术的前沿技术ꎬ是快速分析动态心电图的又一高效工具ꎬ其潜在价值需要进一步深入研究ꎮ参考文献[1]景永明ꎬ胡敏ꎬ向晋涛.心电三维RR间期散点图的概念㊁原理及其优势[J].中国心脏起搏与心电生理杂志ꎬ2016ꎬ30(5):458-463.[2]景永明ꎬ李世锋.心电散点图原理及应用[M].天津:天津科学技术出版社ꎬ2016:1-200.(收稿日期:2020-07-22)(本文编辑:顾艳)732第4期㊀㊀景永明.三维Lorenz散点图的解析策略。
echarts-3D-散点图<div style="border: 2px solid #000;width: 100%;height: 100%;"><div id="main" style="border: 1px solid green;width: 100%;height: 100%;float: left;background: #999;"></div></div><script type="text/javascript">//Income:Z轴;Life Expectancy:Y轴;Country:X轴//井深:Z轴;Y坐标:Y轴;X坐标:X轴var jsonData=[["井深","Y坐标","⼈⼝密度","X坐标","Year"],[10,14,11,2014],[11,25,22,2015],[12,36,33,2016],[13,47,40,2017]];var myChart = echarts.init(document.getElementById('main'));function setOption(datas,x_min,x_max,y_min,y_max,xuanzhuan){var myChart = echarts.init(document.getElementById('main'));option = {grid3D: {boxWidth: 60, //图件宽boxHeight: 122, //图件⾼boxDepth: 60, //图件长height: '100%', //容器⾼width: '100%', //容器宽bottom: 'auto', //3D图与下容器的距离top:'auto', //3D图与上容器的距离axisLine:{lineStyle:{color:'yellow' //坐标轴轴线颜⾊}},splitLine:{lineStyle:{color:'#222' //分割线颜⾊}},axisPointer:{lineStyle:{color:'#efe' //⿏标滑过分割线颜⾊}},environment: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0, color: '#00aaff' // 天空颜⾊}, {offset: 0.7, color: '#998866' // 地⾯颜⾊}, {offset: 1, color: '#998866' // 地⾯颜⾊}], false),postEffect:{enable:false //开启特效},viewControl:{projection: 'perspective', //默认为透视投影'perspective',也⽀持设置为正交投影'orthographic'autoRotate: true, //⾃动旋转autoRotateDirection: 'ccw', //默认是 'cw' 从上往下看是顺时针也可以取 'ccw'逆时针autoRotateSpeed: 4, //默认10 ⾃转速度autoRotateAfterStill: 5, //默认3秒⿏标静⽌操作后恢复⾃动旋转的时间间隔damping: 0.8, //⿏标进⾏旋转,缩放等操作时的迟滞因⼦,在⼤于 0 的时候⿏标在停⽌操作后,视⾓仍会因为⼀定的惯性继续运动(旋转和缩放)animation: true, //是否开启动画animationDurationUpdate: 1000, //过渡动画的时长animationEasingUpdate: 'cubicInOut' //过渡动画的缓动效果},postEffect:{enable:false //是否开启后处理特效,默认关闭不能开浏览器会卡}},xAxis3D: {show: true,name: '南北-X',nameTextStyle:{color: 'lime',fontWeight: 'normal'},min:x_min,max:x_max},yAxis3D: {show: true,name: '东西-Y',nameTextStyle:{color: 'lime',fontWeight: 'normal'},min:y_min,max:x_max},zAxis3D: {show: true,name: '井深-Z',nameTextStyle:{color: 'lime',fontWeight: 'normal'}},dataset: {dimensions: ['井深','Y坐标','X坐标',{name: '井名', type: 'ordinal'}],source: datas},series: [{type: 'scatter3D', //3D类型name: '测试', //名字//coordinateSystem: 'grid3D', //使⽤地球三维地理坐标系//grid3DIndex: 0, //坐标轴使⽤的 geo3D 组件的索引symbol:'diamond', //点形状 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none' symbolSize: 3.5, //点⼤⼩itemStyle: {color:'white', //点颜⾊borderColor: 'green', //点边框颜⾊opacity: 1, //点的透明度 1不透明borderWidth: 0.5 //图形描边宽度},label:{show:false, //是否显⽰点上⾯的标签,默认falsedistance: 15, //标签与点的距离position:'left', //标签位置textStyle:{color:'black', //⽂字颜⾊borderWidth:0, //标签上边框宽度borderColor:'white', //边框颜⾊fontFamily:'宋体', //标签字体fontSize:14, //字体⼤⼩fontWeight:'normal' //是否加粗}},emphasis:{itemStyle:{color:'green', //⿏标移到点上的颜⾊变化opacity:1, //不透明度borderWidth:0, //图像描边宽度borderColor:'#fff' //图形描边颜⾊},label:{show:true, //⿏标移动到点上是否显⽰标签distance: 15, //标签与点的距离position:'left', //标签位置textStyle:{color:'black', //⽂字颜⾊borderWidth:0, //标签上边框宽度borderColor:'white',//边框颜⾊fontFamily:'宋体', //标签字体fontSize:14, //字体⼤⼩fontWeight:'normal' //是否加粗}}},blendMode:'lighter', //混合模式默认使⽤的'source-over'是通过 alpha 混合,⽽'lighter'是叠加模式,该模式可以让数据集中的区域因为叠加⽽产⽣⾼亮的效果。