R语言中的渐变色

Python011

R语言中的渐变色,第1张

如何使用R语言画出漂亮的图,颜色很重要,既要协调,又有有一定的分辨力。

可以拿到任意多个颜色,当然颜色越多,分辨力越低。

barplot(rep(1,8), col=rainbow(8),border=NA)

rainbow(8)

[1] "#FF0000FF" "#FFBF00FF" "#80FF00FF" "#00FF40FF" "#00FFFFFF" "#0040FFFF"

[7] "#8000FFFF" "#FF00BFFF"

barplot(rep(1,20), col=rainbow(20),border=NA) #分辨力降低

par(mfrow=c(4,1), mar=c(0,2,2,0) )

n=10

#heat.colors()从红色渐变到黄色,再变到白色

barplot(rep(1,n), col= heat.colors(n), border=NA, main="heat.colors") 

#terrain.colors() 从绿色渐变到黄色,再到棕色,最后到白色 

barplot(rep(1,n),col=terrain.colors(n), border=NA, main="terrain.colors")

#topo.colors() 从蓝色渐变到青色,再到黄色,最后到棕色 

barplot(rep(1,n),col=topo.colors(n), border=NA, main="topo.colors")

#cm.colors() 从青色渐变到白色,再到粉红色

barplot(rep(1,n),col=cm.colors(n), border=NA, main="cm.colors")

(1)

library(RColorBrewer)

display.brewer.all() #显示全部颜色集合

# 挑选某一个集合

#barplot(rep(1,8),col=brewer.pal(8,"Dark2")[1:8]) #基础语法

myColors=brewer.pal(8,"Dark2")[1:8] #Dark2主题有8种颜色

par(mfrow=c(4,1), mar=c(0,2,2,0) )

barplot(rep(1,8),col= myColors, main="Dark2"  )

#

n=15 #nrow(df)

barplot(rep(1, n ),col= colorRampPalette(colors = myColors)( n ),main="Default:linear") #则由8种生成15种颜色

barplot(rep(1, n ),col= colorRampPalette(colors = myColors, interpolate ="linear")( n ),main="linear" ) #插值方式

barplot(rep(1, n ),col= colorRampPalette(colors = myColors, interpolate ="spline")( n ),main="spline") #插值方式

colSet2 # 获取颜色16进制表示

# [1] "#1B9E77" "#D95F02" "#7570B3" "#E7298A" "#66A61E" "#E6AB02" "#A6761D" "#666666"

解释:

n=5barplot(rep(1,n), col= colorRampPalette (colors = c('red', 'white'))( n ))

colorRampPalette 函数可以混合任意两种及更多颜色,通过插值,生成更多色彩。

(2) 目测其他几个预制颜色集合

n=8barplot(rep(1,n),col= brewer.pal(n,"Set2")[1:n] ) # set2 共8种颜色

ref:

biomooc.com

不知道你问的是在同一图形中添加点(类似画散点图)还是要把屏幕一分为多。

添加的话,用完plot,添加点用points,添加线用lines。

简单点的应用类似:

plot(X,Y)

points(X,Y1)

这样的感觉。

一分为多的话,用split.screen。

上我自己最近写的代码做个例子:

jpeg(filename="geeseP3.jpeg") #画jpeg图

split.screen(c(1,2)) #分屏幕为左右两边

screen(1) #屏幕1预备输出

plot(X2,Y,type="p",xlab="X2",ylab="Y",main="Plotting of X2 and Y")

screen(2) #屏幕2预备输出

plot(X2,Y,type="l")

dev.off()

R语言使用shiny包创建web界面

使用 shinydashboard 包和 shinytheme ,美化界面样式,设置界面主题,提升界面整体水平。

Shiny界面图库

shinydashboard

shinytheme界面主题

shinydashboard包创建的基础界面样式分为三个板块:标题,侧边栏,主界面。

shiny包支持 recharts 包的使用,可以创建界面的交互式图形

shinyapps网址

Rstudio推出了 shiny shinyapps 两个包,shiny可以帮助我们更快更好的开发一些app,然后shinyapps可以提供了一个免费的云服务器,供我们发布app。

以知乎 用R语言分析NBA球员得分 分析结果为主题,做web界面展示。

侧边栏设置两个选项:datas display和players' score,点击不同的选项,展示对应的内容。

datas display界面展现3个数据框:NBA,Away team,Host team。通过show 10/25/50 entries 等控制页面展示数值的条数;右上角search实现数值的搜索功能(使用DT包实现)。

players' score展示主队、客队球员得分情况。使用ggplot2包绘制客队各个球员的得分情况

使用 recharts 包绘制主队各个球员的得分情况,recarts包实现图形交互式展现。

建立完UI界面后,设置对应的数值,表格,图形,使web界面变成动态的界面。

挣扎了好久终于把界面创建成功了,shiny的初步学习先画个句号。