前文回顾: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绘图基本命令介绍相关推荐

  1. 技巧 | 如何使用R语言的基础绘图系统的拼图功能

    我们知道ggplot2工具包有很多方便的拼图拓展包,如cowplot.patchwork等,而本篇就来介绍在使用R语言的基础绘图系统如何进行拼图.需要明确的是,基础绘图系统的拼图功能不需要借助任何其他 ...

  2. R语言使用plotly绘制3D散点图实战

    R语言使用plotly绘制3D散点图实战 目录 R语言使用plotly绘制3D散点图实战 #仿真数据 #plotly绘制3D散点图 #仿真数据 set.seed(41

  3. R语言做统计检验绘图如何添加p-value和显著性标记?——详细介绍如何通过ggpubr包为ggplot图添加p-value以及显著性标记?

    本文转载于:https://zhuanlan.zhihu.com/p/33209557 在R语言在生物信息学的实际应用中,常常需要添加p-value和显著性标记.很多同学对于添加P-value这个问题 ...

  4. R语言——ggplot2的绘图逻辑

    文章目录 前言 数据集介绍 polt与ggplot对比 ggplot2绘图 绘制画布 几何对象 统计变换 标尺设置 坐标系的转换 分面 facet_grid函数 facet_wrap函数 保存图形 写 ...

  5. 基于R语言的梯度推进算法介绍

    简介 通常来说,我们可以从两个方面来提高一个预测模型的准确性:完善特征工程(feature engineering)或是直接使用Boosting算法.通过大量数据科学竞赛的试炼,我们可以发现人们更钟爱 ...

  6. pvrect r语言 聚类_技术贴 | R语言——肠型分析:介绍、方法

    点击蓝字↑↑↑"微生态",轻松关注不迷路 导读 2011年,肠型(Enterotypes)的概念首次在<自然>杂志上由Arumugam等[1]提出,该研究发现可以将人类 ...

  7. R语言plot(lm)绘图结果解读

    在任何线性模型中,能够直接"lm"(模型有意义),既要考虑各个参数的t-test所得出的p-value,也要考虑总体模型F-检验得出的p-value.在这之后,还要清楚一个线性模型 ...

  8. 实证操作:R语言实现分位数回归的介绍

    "分位数回归是估计一组回归变量X与被解释变量Y的分位数之间线性关系的建模方法.从最小二乘法可以看出,传统回归中最小化残差的平方极易受极端值的影响,而且属于均值回归,这种方法不能得到不同分布下 ...

  9. R语言for循环绘图

    R语言for循环绘多张图 data("diamonds") m <- split(diamonds, diamonds$color) length(m) for (i in ...

最新文章

  1. Xilinx ISE 开发过程中生成的各种文件(二)
  2. 热传的职场异性相处PPT!网友评:你倒是给我分配个女同事啊!
  3. BFS 算法解题套路框架+几个用于BFS的set与queue用法和技巧
  4. Linux开源系统OpenWrt被曝RCE 漏洞已存在3年,数百万网络设备受影响
  5. 项目上传服务器后,图片上传功能不能用了?附件不能成功上传。
  6. mac/linux下java项目使用本机自带ssh和scp命令,自动复制上传并部署的脚本
  7. 如何用word制作自己想要的硬笔字帖
  8. 关于文本分类(情感分析)的英文数据集汇总
  9. flash cs4 和 flex builder 联合开发
  10. Vue小说阅读器(仿追书神器)
  11. 485串口和计算机通信,485串口通信 485通讯与串口通讯区别
  12. 第一章 MapReduce概述
  13. Android~adb卸载系统预装应用(亲测有效)
  14. 互联网运营常用8大数据分析模型
  15. 英语音标、发音技巧、浊化规则
  16. mysql的建表赋权_mysql创建用户并赋权
  17. 新媒体运营之如何低成本,有效地进行企业公众号拉新,获取10万+潜在用户? 黎想
  18. 2020-10-14Go语言数据类型和变量常量
  19. 遛一遛8266的定时器
  20. SAP中国客户名单[转载]

热门文章

  1. 华为首次自曝“天才少年”成果:入职不到一年就干成这件大事,网友:值200万年薪!| 留言送书...
  2. 本地搭建乌云漏洞平台
  3. Java EE小知识
  4. G711(PCM/PCMA/PCMU),G721,G723,G729等 音频编解码
  5. PreTranslateMessage(MSG* pMsg)专题
  6. PMSG类型究竟是什么意思?
  7. VideoShow -视频编辑 v8.8.4rc (更新版)
  8. Nginx安装/负载均衡/反向代理配置与调优
  9. 漏洞复现之CVE-2018-1273 Spring Data Commons 远程命令执行
  10. WIN10电脑热点无法共享