日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/3/15 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個震撼的交互型3D可視化R包 - rayshader

雖然3D的plot見得比較多了,但是看見這樣的R包,我的心還是了一下,這個簡直不能再好看了!

關鍵是!!!敲黑板,這個R包超簡單!!!對于剛學習R語言的同學們來說,會被圈粉噠!

該包的主要功能就是將ggplot2畫出來的2D圖像變為3D圖像,不說廢話,直接上代碼。

# 安裝rayshader包 install.packages("remote") remotes::install_github("tylermorganwall/rayshader") library(rayshader) library(ggplot2)# 查看數據格式 head(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_gg函數即可 plot_gg(gg,multicore=TRUE,width=5,height=5,scale=250)

打開后,可以像任何其他光線圖一樣操作繪圖 - 可以調用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 featurescale_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)

# 隨機取三組數字,并且對其進行合并,兩列,一列X,一列Y a = 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) #其實如果我們有相同類型的數據,也可以仿照該組織方式進行合并;# Lines pp = 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 lines pp_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)

# 該數據摘自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)

準備開始了嗎?

點擊鏈接 https://github.com/tylermorganwall/rayshader!該網站包含所有rayhader功能的文檔和示例,可以在Github頁面上找到實際的存儲庫。就讓你靜靜的看我有多美!

想把其它圖也用3D展示,可以拿下面的ggplot2系列繪圖做例子。

  • ggplot2高效實用指南 (可視化腳本、工具、套路、配色)

  • ggplot2學習筆記之圖形排列

  • 12個ggplot2擴展包幫你實現更強大的可視化

作者:張虎?協和


你可能還想看

  • 文章用圖的修改和排版 (1)

  • 文章用圖的修改和排版 (2)

  • 簡單強大的在線繪圖

  • 簡單強大的在線繪圖-升級版

  • 簡單強大的在線繪圖-第3版

  • 論文圖表基本規范

  • 學術圖表的基本配色方法

  • 數據可視化基本套路總結

往期精品(點擊圖片直達文字對應教程)

機器學習

后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集

總結

以上是生活随笔為你收集整理的一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。