前文回顾: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=https://www.it610.com/article/iris,
aes(x=Sepal.Length,
y=Petal.Length,
colour=Species))+
geom_point()ggplotly(p)
文章图片
交互式体现:可通过鼠标查看数据标签、点击右侧的图例可控制散点显隐
- 基本语法
plot_ly(data=https://www.it610.com/article/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 | 图例名称 |
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=https://www.it610.com/article/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=https://www.it610.com/article/data,
labels=~category,
values=~values)%>%
add_pie()#圆环
plot_ly(data=https://www.it610.com/article/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=https://www.it610.com/article/list(prefix="当前年度",font=list(color="red")))%>%
animation_button(label="播放")%>%
animation_opts(1000,easing="elastic",redraw=T)
【R语言|R语言(五) Plotly绘图基本命令介绍】以上则是本文分享的全部内容
推荐阅读
- windows|拓端tecdat|windows中用命令行执行R语言命令
- r语言|手把手(R语言文本挖掘和词云可视化实践)
- R语言从入门到机器学习|R语言rename重命名dataframe的列名实战:rename重命名dataframe的列名(写错的列名不会被重命名)
- R下载安装,Linux版
- R|不同方法的正态性检验及R语言实现
- jiebaR - 中文分词
- 模型评估
- 信息增益率
- R - dplyr 包