R可视乎|交互式图形库 Plotly

简介: 之前公众号介绍过的绘图工具:如何快速画出美观的图形?,图表这么多,该用哪种展示我的数据呢?使用的语言都为 python,对于一些 R 语言爱好者就不是那么方便啦,今天小编为大家介绍一个支持 R 语言的开源图形库—— Plotly,赶紧收藏起来,迅速 get 绘制美观实用的图形技能吧~

223HUW}`{EQ6_4}20S`J{JT.png

之前公众号介绍过的绘图工具:如何快速画出美观的图形?图表这么多,该用哪种展示我的数据呢?使用的语言都为 python,对于一些 R 语言爱好者就不是那么方便啦,今天小编为大家介绍一个支持 R 语言的开源图形库—— Plotly,赶紧收藏起来,迅速 get 绘制美观实用的图形技能吧~


简介


Plotly 支持的语言有 Python、 R、Julia、Javascript、ggplot2、F#、MATLAB,以及 Dash,可以根据个人需要进行选择。

T]W{4~2Q9}X`T2O)Y6R7CZB.png

本文先介绍 plotly 的 R 包用法,网站左侧有个图形示例导航栏:

image.gif3NFB%68TX[)}1H8TJ(@]ZYK.png


图形示例

Plotly 最大的特点是绘制出来的图形都是交互式的,所给示例(图形示例的网址:https://plotly.com/r/)除了常见的线图、饼图之外,还提供了一些机器学习模型结果的可视化,这样再有建模需求时也能对模型结果进行高质量地展示啦,下图为部分绘图示例:

CC~F[MAN2M5SFRACI3PB_QP.png

机器学习子图


R 包安装

在 R Studio 里使用 Plotly 包时,需要先进行安装并加载:

install.packages("plotly")
library(plotly)


绘图实战

当自变量有多个时,R 自带的绘图函数 plot 无法对其进行可视化,这时可以利用plotly包中的plot_ly函数对多元回归平面进行可视化。下面以 iris 数据集为例,先加载所需要的 R 包:

#加载包
library(reshape2)
library(tidyverse)
library(tidymodels)
library(plotly)
#install.packages("kernlab")
library(kernlab)
#install.packages("pracma")
library(pracma) #为了在曲面上显示网格线
data(iris)



选择 Sepal.Width 、Sepal.Length 作为自变量,因变量为 Petal.Width,

#选择自变量和因变量
mesh_size <- .02
margin <- 0
X <- iris %>% select(Sepal.Width, Sepal.Length)
y <- iris %>% select(Petal.Width)


构造回归模型,选择 rbf 核函数进行映射:

model <- svm_rbf(cost = 1.0) %>% 
  set_engine("kernlab") %>% 
  set_mode("regression") %>% 
  fit(Petal.Width ~ Sepal.Width + Sepal.Length, data = iris)


建立坐标轴范围

x_min <- min(X$Sepal.Width) - margin
x_max <- max(X$Sepal.Width) - margin
y_min <- min(X$Sepal.Length) - margin
y_max <- max(X$Sepal.Length) - margin
xrange <- seq(x_min, x_max, mesh_size)
yrange <- seq(y_min, y_max, mesh_size)
xy <- meshgrid(x = xrange, y = yrange)
xx <- xy$X
yy <- xy$Y
dim_val <- dim(xx)
xx1 <- matrix(xx, length(xx), 1)
yy1 <- matrix(yy, length(yy), 1)
final <- cbind(xx1, yy1)
pred <- model %>%
  predict(final)
pred <- pred$.pred
pred <- matrix(pred, dim_val[1], dim_val[2])


利用plot_ly函数绘图:

fig <- plot_ly(iris, x = ~Sepal.Width, y = ~Sepal.Length, z = ~Petal.Width ) %>% 
  add_markers(size = 5) %>% 
  add_surface(x=xrange, y=yrange, z=pred, alpha = 0.65, type = 'mesh3d', name = 'pred_surface')
fig


结果展示

可以看到 Plotly 绘制出来的图形,不仅美观,而且是可以交互的,这个包还提供许多非常有用的例子,大家可以自行探索一下~

F6MZZ58G~X]%RQZ_UFEGOSR.png

目录
相关文章
|
Web App开发 前端开发 安全
前端小知识之【浏览器内核】
前端小知识之【浏览器内核】
394 0
Latex角标(subscript/superscript)
Latex角标,包括一个字符的左上,左下,右上,右下位置,具体有多重实现方式,分别适用不同情况 \documentclass[UTF8]{ctexart} \usepackage{mathtools} \usepack...
3266 0
|
网络安全 网络虚拟化 网络架构
计算机网络实验(华为eNSP模拟器)——第二章 VRP通用路由平台介绍
计算机网络实验(华为eNSP模拟器)——第二章 VRP通用路由平台介绍
计算机网络实验(华为eNSP模拟器)——第二章 VRP通用路由平台介绍
|
网络协议 网络安全 Linux
|
2月前
|
机器学习/深度学习 监控 数据可视化
人体跌倒识别检测项目|全流程源码+数据集+可视化界面+一键训练部署
本项目基于 YOLOv8 模型和 PyQt5 图形界面工具,构建了一个 人体跌倒识别系统,旨在通过计算机视觉技术监测老年人等群体的跌倒行为。项目提供了完整的 源码、数据集、训练流程、以及开箱即用的检测程序,确保用户能够快速搭建并部署自己的跌倒识别系统。
人体跌倒识别检测项目|全流程源码+数据集+可视化界面+一键训练部署
|
机器学习/深度学习 人工智能 语音技术
阿里旗下通义系列AI产品有哪些?
【2月更文挑战第16天】阿里旗下通义系列AI产品有哪些?
3863 2
阿里旗下通义系列AI产品有哪些?
|
12月前
|
域名解析 负载均衡 网络协议
slb域名配置步骤
slb域名配置步骤
697 12
|
数据采集 存储 编解码
使用Arcgis pro做流域分析(河网+集水区)
【8月更文挑战第10天】使用ArcGIS Pro进行流域分析包括河网与集水区提取。首先准备DEM及河流数据,然后在软件中加载。若无河网数据,可用“Fill”填洼、“Flow Direction”计算流向、“Flow Accumulation”计算累积量,并通过“Stream Definition”定义河流。集水区分析则使用“Watershed”工具确定特定点的流域范围。最后,通过符号化展示结果,并结合其他数据深入分析流域特性。注意数据质量与参数选择以保证分析准确性。
1676 1
|
Java 测试技术 UED
在Spring Boot中实现灰度发布的策略
在Spring Boot中实现灰度发布的策略
|
SQL 数据库 开发者
全面提速你的数据访问:Entity Framework Core性能优化指南,从预加载到批量操作的最佳实践揭秘,打造高性能数据库交互体验
【8月更文挑战第31天】本文详细介绍如何在Entity Framework Core(EF Core)中优化数据访问性能,涵盖从创建项目到定义领域模型、配置数据库上下文的最佳实践。文章通过具体代码示例讲解了预加载、惰性加载、显式加载、投影及批量操作等技术的应用,并介绍了如何使用SQL查询和调整查询性能来进一步提升效率。通过合理运用这些技术,开发者可以构建出高效且响应迅速的数据访问层,提升应用程序的整体性能和用户体验。
394 0