R语言(五) Plotly绘图基本命令介绍
前文回顾:R语言ggplot基本语法介绍
在R语言中,除ggplot外,plotly也是一大常用的绘图包,其与ggplot的区别在于它的可交互性,本文主要整理其基本绘图命令。
目录
- 一、基本介绍
- 1.1 绘图语法
- 1.2 绘图原理
- 二、绘图示例
- 2.1 条形图
- 2.2 散点图和折线图
- 2.3 饼图
- 2.4 箱线图和直方图
- 2.5 雷达图
- 2.6 动态图
一、基本介绍
1.1 绘图语法
plotly插件包绘图方式主要分两种:一是将ggplot对象直接转为plotly对象;二是直接使用初始化plotly函数进行绘制
- 直接转换
library(ggplot2)
library(plotly)p<-ggplot(data=iris,aes(x=Sepal.Length,y=Petal.Length,colour=Species))+geom_point()ggplotly(p)
交互式体现:可通过鼠标查看数据标签、点击右侧的图例可控制散点显隐
- 基本语法
plot_ly(data=iris,x = ~Sepal.Length,y = ~Petal.Length,type='scatter')%>%layout(title='iris scatter',yaxis=list(zeroline=FALSE),xaxis=list(zeroline=FALSE))
1.2 绘图原理
R语言环境下R语言代码转为plotly包图形的关键在于plotly.js所需的json格式数据的转换,主要经历以下三个步骤:
1、使用plotly_build()
函数将R语言代码转为R语言列表
2、使用plotly_json()
函数将R语言列表转换为JSON格式数据传给plotly.js
3、由plotly.js
根据输入的数据生成plotly
插件包图形
二、绘图示例
plotly主要参数 | 含义 |
---|---|
type | 绘图类型 |
mode | 绘图名称 |
name | 图例名称 |
2.1 条形图
iris_data<-data.frame(Species=names(tapply(iris$Sepal.Length,iris$Species,mean)),Sepal.Length=c(tapply(iris$Sepal.Length,iris$Species,mean)),Petal.Length=c(tapply(iris$Sepal.Length,iris$Species,mean)))#绘制单组条形图
p1<-plot_ly(data=iris,x=~Species,y=~Sepal.Length,name="Sepal.Length",type='bar')
p1#多组条形图
p2<-p1%>%add_bars(y=~Petal.Length,name="Petal.Length")%>%layout(yaxis=list(title='Length'),barmode='group')
p2#堆积柱形图
p3<-p1%>%add_bars(y=~Petal.Length,name="Petal.Length")%>%layout(yaxis=list(title='Length'),barmode='stack')
p3
2.2 散点图和折线图
data_0<-rnorm(100,mean=15)
data_1<-rnorm(100,mean=10)
data_2<-rnorm(100,mean=5)
id<-c(1:100)
data<-data.frame(id,data_0,data_1,data_2)plot_ly(data,x=~id,y=~data_0,name='lines',type='scatter',mode='lines')%>%add_trace(y=~data_1,name='lines+points',mode='lines+markers')%>%add_trace(y=~data_2,name='points',mode='markers')
2.3 饼图
data<-data.frame(category=c("类别1","类别2","类别3","类别4","类别5"),values=c(0.35,0.25,0.2,0.15,0.05),stringsAsFactors=T)
#饼图
plot_ly(data=data,labels=~category,values=~values)%>%add_pie()#圆环
plot_ly(data=data,labels=~category,values=~values)%>%add_pie(hole=0.5)
2.4 箱线图和直方图
#箱线图
plot_ly(x=~iris$Sepal.Length,name="Sepal.Length",type="box")%>%add_trace(x=~iris$Sepal.Width,name="Sepal.Width")%>%add_trace(x=~iris$Petal.Length,name="Petal.Length")%>%add_trace(x=~iris$Petal.Width,name="Petal Width")%>%layout(xaxis=list(title=""))#直方图
plot_ly(x=rnorm(1000),type='histogram',marker=list(color="rgb(159,202,225)",line=list(color="rgb(8,48,107)",width=1.5)))
2.5 雷达图
plot_ly(type='scatterpolar',mode='markers',fill="toself")%>%add_trace(r=c(data$values_1,data$values_1[1]),theta=c(data$x,data$x[1]),name="类别1")%>%add_trace(r=c(data$values_2,data$values_2[2]),theta=c(data$x,data$x[1]),name="类别2")%>%layout(polar=list(radialaxis=list(visible=T,range=c(0,100))),showlegend=T)
2.6 动态图
library(gapminder)
plot_ly(gapminder,x=~gdpPercap,y=~lifeExp,size=~pop,color=~continent,frame=~year,text=~country,hoverinfo="text",type="scatter",mode="markers")%>%layout(xaxis=list(title="人均GDP",type="log"),yaxis=list(title="预期寿命"))%>%animation_slider(currentvalue=list(prefix="当前年度",font=list(color="red")))%>%animation_button(label="播放")%>%animation_opts(1000,easing="elastic",redraw=T)
以上则是本文分享的全部内容
R语言(五) Plotly绘图基本命令介绍相关推荐
- 技巧 | 如何使用R语言的基础绘图系统的拼图功能
我们知道ggplot2工具包有很多方便的拼图拓展包,如cowplot.patchwork等,而本篇就来介绍在使用R语言的基础绘图系统如何进行拼图.需要明确的是,基础绘图系统的拼图功能不需要借助任何其他 ...
- R语言使用plotly绘制3D散点图实战
R语言使用plotly绘制3D散点图实战 目录 R语言使用plotly绘制3D散点图实战 #仿真数据 #plotly绘制3D散点图 #仿真数据 set.seed(41
- R语言做统计检验绘图如何添加p-value和显著性标记?——详细介绍如何通过ggpubr包为ggplot图添加p-value以及显著性标记?
本文转载于:https://zhuanlan.zhihu.com/p/33209557 在R语言在生物信息学的实际应用中,常常需要添加p-value和显著性标记.很多同学对于添加P-value这个问题 ...
- R语言——ggplot2的绘图逻辑
文章目录 前言 数据集介绍 polt与ggplot对比 ggplot2绘图 绘制画布 几何对象 统计变换 标尺设置 坐标系的转换 分面 facet_grid函数 facet_wrap函数 保存图形 写 ...
- 基于R语言的梯度推进算法介绍
简介 通常来说,我们可以从两个方面来提高一个预测模型的准确性:完善特征工程(feature engineering)或是直接使用Boosting算法.通过大量数据科学竞赛的试炼,我们可以发现人们更钟爱 ...
- pvrect r语言 聚类_技术贴 | R语言——肠型分析:介绍、方法
点击蓝字↑↑↑"微生态",轻松关注不迷路 导读 2011年,肠型(Enterotypes)的概念首次在<自然>杂志上由Arumugam等[1]提出,该研究发现可以将人类 ...
- R语言plot(lm)绘图结果解读
在任何线性模型中,能够直接"lm"(模型有意义),既要考虑各个参数的t-test所得出的p-value,也要考虑总体模型F-检验得出的p-value.在这之后,还要清楚一个线性模型 ...
- 实证操作:R语言实现分位数回归的介绍
"分位数回归是估计一组回归变量X与被解释变量Y的分位数之间线性关系的建模方法.从最小二乘法可以看出,传统回归中最小化残差的平方极易受极端值的影响,而且属于均值回归,这种方法不能得到不同分布下 ...
- R语言for循环绘图
R语言for循环绘多张图 data("diamonds") m <- split(diamonds, diamonds$color) length(m) for (i in ...
最新文章
- Xilinx ISE 开发过程中生成的各种文件(二)
- 热传的职场异性相处PPT!网友评:你倒是给我分配个女同事啊!
- BFS 算法解题套路框架+几个用于BFS的set与queue用法和技巧
- Linux开源系统OpenWrt被曝RCE 漏洞已存在3年,数百万网络设备受影响
- 项目上传服务器后,图片上传功能不能用了?附件不能成功上传。
- mac/linux下java项目使用本机自带ssh和scp命令,自动复制上传并部署的脚本
- 如何用word制作自己想要的硬笔字帖
- 关于文本分类(情感分析)的英文数据集汇总
- flash cs4 和 flex builder 联合开发
- Vue小说阅读器(仿追书神器)
- 485串口和计算机通信,485串口通信 485通讯与串口通讯区别
- 第一章 MapReduce概述
- Android~adb卸载系统预装应用(亲测有效)
- 互联网运营常用8大数据分析模型
- 英语音标、发音技巧、浊化规则
- mysql的建表赋权_mysql创建用户并赋权
- 新媒体运营之如何低成本,有效地进行企业公众号拉新,获取10万+潜在用户? 黎想
- 2020-10-14Go语言数据类型和变量常量
- 遛一遛8266的定时器
- SAP中国客户名单[转载]
热门文章
- 华为首次自曝“天才少年”成果:入职不到一年就干成这件大事,网友:值200万年薪!| 留言送书...
- 本地搭建乌云漏洞平台
- Java EE小知识
- G711(PCM/PCMA/PCMU),G721,G723,G729等 音频编解码
- PreTranslateMessage(MSG* pMsg)专题
- PMSG类型究竟是什么意思?
- VideoShow -视频编辑 v8.8.4rc (更新版)
- Nginx安装/负载均衡/反向代理配置与调优
- 漏洞复现之CVE-2018-1273 Spring Data Commons 远程命令执行
- WIN10电脑热点无法共享