r语言中怎么用barplot画图

Python014

r语言中怎么用barplot画图,第1张

1 画出来图了以后再改坐标的话,点Show Plot Tools按钮,在右边Plot Browser里点Axes,在下面选你要改的那个轴,点Ticks...,在Edit Axes Ticks里面改Labels里面的数就行了,10改成1,20改成2,以此类推2 在画图的时候直接plot(x/10,y)这样也行。

接着上一篇文章 R语言:表格的线图转化 继续练习,这次是直方图。

前段时间在视频课程学习过直方图案例,有一个citysales表格,表示3种产品,在5个城市的销量。

运用的是“barplot”命令,程序如下:

citysales<-read.csv("citysales.csv")

x<-barplot(as.matrix(citysales[,2:4]),beside=TRUE,

legend.text=citysales$City,args.legend=list(bty="n",horiz=TRUE),

col=brewer.pal(5,"Set1"),border="black",ylim=c(0,100))

自己用来练习的表格,还是上次那个。

因为这次想用案例中的色库,所以安装了“RColorBrewer”包。

然后按照案例中语句,写了一下。颜色参数有一点改动。

barplot(as.matrix(mydata[,2:3]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"))

噫,为什么2006一列,2016一列?看回案例,barplot命令是根据列分组的,所以这里也根据了两个年份分组。

这样的图形不是我想要的,所以用 t命令 把mydata的行列互相置换了一下。

b<-as.matrix(mydata[,2:3]) c<-t(b)

barplot(c,las=2,beside=TRUE,col=brewer.pal(2,"Set2"))

这次出现的图形就对了,但是x轴的图标不对。区域名消失了。

很奇怪的是,如果整个mydata置换,就会把整个matrix都变成字符,barplot就不能只打印其中的两列,必须置换成数值

图形跟上图一样,就是没有x轴的数字了。

如果索性在excel表里手动置换行和列,也是可以的。

barplot(as.matrix(mydata2[,2:16]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"),ylim=c(0,95000))

如果去掉“beside=TRUE”语句,则形成层叠图。再加上增长幅度曲线rate。但是因为增长幅度数值相对于几万的房价比较小,所以乘以5000倍才能看得见。

lines(mydata$rate*5000,col="gold")

这里又出现了一个缺点,涨幅曲线和柱状图差了一个,当然在excel表是完全对应的。还没有找出原因。望各位大神指教。

这次的练习:

1.条形图的转化

2.两种图形的叠加

3.RColorBrew包及相关命令

不明白/没做出来的地方

1.用barplot打印matrix的格式

2.matrix怎么加表头

3.Line和条形图的对应

如何使用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