一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D

发布时间:2023-05-08 09:06:30

 

一个令人震惊的交互式3D视觉R包 - rayshader

一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D_可视化

虽然3Dplot看到的比较多,但是看到这样的plotR包,我的心还是砰的一声,再也不好看了!

关键是!!!敲黑板,这个R包超简单!!!对于刚学R语言的同学来说,会被圈粉!

这个包的主要功能是画GGPlot22D图像变为3D图像,不说废话,直接上代码。

# 安装rayshader包installl安装.packages("remote")remotes::install_github("tylermorganwall/rayshader")library(rayshader)library(ggplot2)# 查看数据格式headad(diamonds)# 二维密度图gg绘制 = ggplot(diamonds, aes(x, depth)) +     stat_density_2d(aes(fill = stat(nlevel)), #绘制密度等高线图                  geom = "polygon",                  n = 100,bins = 10, contour = TRUE) +     facet_wrap(clarity~.) +    # 按照clarity分类     scale_fill_viridis_c(option = "A") # 将map颜色设置为“岩浆”颜色,称为“A”,共有“A”,“B”,“C”,“D”和“E”五种;gg # 绘制2D图# 转换成3D图,plot_g函数只需要plot_g函数gg(gg,multicore=TRUE,width=5,height=5,scale=250)

一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D_html_02

打开后,绘图可以像任何其他光线图一样操作 - 可以调用render_camera()通过编程改变相机的位置,render_snapshot()可以保存或输出当前视图,甚至可以使用render_depth()渲染光滑的深度场效应。光源也可以更改甚至删除,任何参数都可以传递给plot_gg(),绘制为plot_3d()

# 如缺少sf包,建议先安装library(sf)nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) #加载包自带的数据gg_nc = ggplot(nc) +  # 加载North Carolina地图  geom_sf(aes(fill = AREA)) +  # 绘制地理数据模型,sf对象,Simple的全称 feature  scale_fill_viridis("Area") +   # 按区域上色  ggtitle("Area of counties in North Carolina") +    # 绘制题目  theme_bw()plot_gg(gg_nc, multicore = TRUE, width = 6 ,height=2.7, fov = 70) #加载图形render_depth(focallength=100,focus=0.72)

一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D_可视化_03

# 随机取三组数字并合并,两列,一列X,一列Ya = data.frame(x=rnorm(20000, 10, 1.9), y=rnorm(20000, 10, 1.2) )b = data.frame(x=rnorm(20000, 14.5, 1.9), y=rnorm(20000, 14.5, 1.9) )c = data.frame(x=rnorm(20000, 9.5, 1.9), y=rnorm(20000, 15.5, 1.9) )data = rbind(a,b,c)class(data)   #事实上,如果我们有相同类型的数据,也可以模仿组织模式合并;# Linespp = ggplot(data, aes(x=x, y=y)) +  geom_hex(bins = 20, size = 0.5, color = "black") + # 绘制六边形图  scale_fill_viridis_c(option = "C")plot_gg(pp, width = 4, height = 4, scale = 300, multicore = TRUE)# No linespp_nolines = ggplot(data, aes(x=x, y=y)) +  geom_hex(bins = 20, size = 0) +  scale_fill_viridis_c(option = "C")plot_gg(pp_nolines, width = 4, height = 4, scale = 300, multicore = TRUE)

一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D_可视化_04

# 该数据摘自1974年《美国汽车趋势》杂志,包括32种汽车(1973-74型号)的燃油消耗和10种汽车的设计和性能。#这些数据是我们常见的R中模拟数据head(mtcars)mtcars_gg = ggplot(mtcars) +  geom_point(aes(x=mpg,color=cyl,y=disp),size=2) +  scale_color_continuous(limits=c(0,8)) +  ggtitle("mtcars: Displacement vs mpg vs # of cylinders") +  theme(title = element_text(size=8),        text = element_text(size=12))plot_gg(mtcars_gg, height=3, width=3.5, multicore=TRUE, pointcontract = 0.7, soliddepth=-200)

一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D_数据可视化_05

准备好开始了吗?

点击链接 https://github.com/tylermorganwall/rayshader!该网站包含所有权rayhader功能的文档和示例可以在Github在页面上找到实际的存储库。让你静静地看看我有多漂亮!

一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D_可视化_06

一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D_html_07

还想用其他图片3D展示,可以拿下面的ggplot2以系列绘图为例。

  • gggplot2高效实用指南 (可视化脚本、工具、套路、配色)
  • ggplot2学习笔记图形排列
  • 12ggplot2扩展包帮助您实现更强大的可视化

上一篇 机器学习 - 训练集、验证集、测试集
下一篇 开发Servlet

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题