R语言使用Plotly包进进行可交互性绘图---3D表面图(3D Surface Plots)

简介

     Plotly是一个基于JavaScript技术的一项开源项目,官网用一句话介绍了这组工具的功能:The open source JavaScript graphing library that powers plotly——一项利用JavaScript技术的开源增强型绘图工具库。并且其开发了多种平台的API接口,包括Python,MATLAB,Excel,Ruby以及我这里用到的R平台等等。提供的图像类型十分丰富,并且安装配置起来也十分方便。


而我自己本人也是由于最近的一项项目的分析结果想要找到一个比较好的可视化表现效果,google了一些相关的资料之后,才发现了这么一个十分好用的工具,使用之后发现效果不错,在这里分享一下使用方法与相关代码。

在R环境下,直接在CRAN里安装即可。

install.packages('plotly')

library(plotly)

packageVersion('plotly')#输入可查看包的版本

1.绘制一个基本的3D表面图

调用R自带的一组火山数据

data('volcano')

View(volcano)#查看数据情况


代表的是某座火山在不同坐标位置的海拔高度

这组数据是一组矩阵,直接运行:

p1=plot_ly(z=~volcano)%>%add_surface()

p1

在Rstudio就可以直接产生结果,并且可以在Rstudio中直接进行交互式操作

可通过鼠标拖动,调整观察位置,缩放以及查看所在位置的数值情况


在一次项目中绘制的一副概率估计3D图,Z表示事件在该点的概率预测值。

2.绘制2维数据的3D密度估计图

library(MASS)

data(geyser)

View(geyser)#是一组来自于MASS包的二维的分布数据,分布值不连续且各维度取值有重复,故可以进行密度分布估计

kd<-with(geyser,kde2d(duration,waiting,n=50))#对数据进行核密度估计,n可以调节密度估计结果的平滑程度,返回值为一组三维的list

p2<-plot_ly(x=kd$x,y=kd$y,z=kd$z)%>%add_surface()#直接进行绘制

p2


密度估计图的效果

3.绘制出分层效果

这里用到了一个99X99的2维矩阵new_mt,矩阵的数值代表一个概率值。

n1=new_mt+1#定义一个上层的矩阵

n2=new_mt-1#再定义一个下层的矩阵

p3=plot_ly(showscale=FALSE)%>%add_surface(z=~new_mt)%>%add_surface(z=~n1,opacity=0.95)%>%add_surface(z=~n2,opacity=0.9)#opacity参数代表模糊程度,0~1进行设置。

p3

分层效果

以上就是对这个包绘制3D图的基本介绍,值得一提的是,在R中可以直接将图输出保存为网页html的形式,方便展示


保存为网页导出

附plotly官网对该库的介绍:

plot.ly/r/3d-surface-plots/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基本作图plot type参数,控制绘制图形的类型 灵活绘制其他数据图 控制数据图选项和参数1.标题和坐标轴标签m...
    茶苯海阅读 4,913评论 0 1
  • 我一直留长发,原因很简单不爱去理发店,分不清那么多tony(托尼)和george(乔治),经常无法承担去完理发店后...
    留逝时光阅读 1,378评论 1 3
  • 在星光雷声里沉沦 躺倒在黑白的歌声里 行走在色彩斑斓的梦里 那一夜我睡在自己的青春里
    Everrrrrr阅读 1,535评论 0 4
  • 空调吹着三十二度的凉风 说好的地暖和俩月前的工资一样 都没见着 夜晚有多难熬 明明打着游戏脑里却想着明天的报表 堆...
    白平阅读 3,587评论 1 2
  • 罗胖60秒:金钱作为衡量工具 1. 凡事不能都讲钱,但当有些东西不好衡量的时候,钱就是一个很好的衡量工具。 2. ...
    槟榔妹子阅读 1,342评论 0 0

友情链接更多精彩内容