R命令(5)

2019-08-03 13:06

//直方图和密度曲线 p <- ggplot(mpg,aes(hwy))

p + geom_histogram(position = 'identity', alpha=0.5,aes(y = ..density..,fill = factor(year))) +stat_density(geom =

'line',position = 'identity', aes(colour = factor(year)))

// alpha透明参数,aes y轴映射为频率,fill填充色为year,对year映射密

度曲线,绘制密度曲线,geom为几何类型,position是覆盖点的位置,数据源可以由aes指定

//位置调整

with(mpg,table(class,year))

//直接操作数据框,等价于table(mpg$class,mpg$year)多维频率统计 //首先将数据按照year这个变量划分为两组,用不同的颜色绘制直方图,而且用

频率而非计数来刻画Y轴,并添加密度曲线。

p <- ggplot(data=mpg,aes(x=class,fill=factor(year))) p + geom_bar(position='dodge') p + geom_bar(position='stack') p + geom_bar(position='fill')

p + geom_bar(position='identity',alpha=0.3)

//geom_bar是绘制条状几何对象,dodge方式是将不同年份的数据并列放置;

stack方式是将不同年份数据堆叠放置,这也是geom_bar的默认处理方式;fill方式和stack类似,但Y轴不再是计数,而是以百分比显示;identity方式是不做任何改变直接显示出来,所以需要设置透明度才能看得清楚。

//上面的等价于:ggplot(mpg)+geom_bar(aes(x=class,fill=factor(year)),position='dodge') ggplot()+geom_bar(aes(x=c(LETTERS[1:3]),y=1:3),stat=\

//直方图把连续型的数据按照一个个等长的分区(bin)来切分,然后计数,画柱状图。而柱状图是分类数据,按类别计数//限制坐标轴范围 y=c(1.1,1.8,2.5,3.6,3.1,2.7,1.9,-0.1,-3.5,3.0) x=2001:2010

data=data.frame(x,y)

p=ggplot(data,aes(x,y,fill=y))//填充色以y

p+geom_bar(stat=\

geom_abline(intercept = 0, slope =0,size=1,colour='gray')+//添加直线x=0 geom_text(aes(label=y),hjust=0.5, vjust=-0.5)+//添加文字说明 scale_y_continuous(limits=c(-3.8,4.2))+//?????? labs(x='年份',y='GDP增长率%')+//xlab,ylab opts(title = \美国GDP增长率\

21

//散点图

p<- ggplot(mpg, aes(cty, hwy))

p1<- p + geom_point(aes(colour = factor(year),shape = factor(year),size = mpg$displ), alpha = 0.6, position = 'jitter')//颜色,形状,大小,透明度,位置jitter??? print(p1)//画出p1

//坐标轴控制

cty.mean=with(mpg,mean(cty))//均值相当于mean(mpg$cty) cty.sd=with(mpg,sd(cty))//计算标准差

p1+scale_x_continuous(trans='log',breaks=c(cty.mean-cty.sd,cty.mean,cty.mean+cty.sd), labels=c(\

//对X轴和Y轴均进行对数变换,然后对X轴的坐标显示加以限制----只显示X轴数据的均值,以及一倍标准差的坐标。

//添加文字说明

p<- ggplot(mtcars, aes(x=wt,y=mpg,colour=factor(cyl),label=rownames(mtcars))) p+ geom_text(hjust=0,vjust=-1,alpha=0.8)+geom_point(size=3,aes(shape=factor(cyl)))

//矩阵散点图

plotmatrix(USArrests)+geom_smooth()//展示了矩阵两两列变量间的关系

//对角线的图是变量的密度估计,比如左上角第一个就是murder这个变量的密度估计曲线。

ggplot(x)+geom_density(aes(x= x$x1,colour =x$x2,

fill=x$x1))//geom_density画密度函数图,fill向曲线下方填充颜色 geom_××××

geom_abline eom_area geom_bar geom_bin2d

geom_blank geom_boxplotgeom_contour geom_crossbar geom_density geom_density2d geom_dotplotgeom_errorbar geom_errorbarh geom_freqpoly geom_hex geom_histogram geom_hline geom_jitter geom_line geom_linerange geom_map geom_pathgeom_point geom_pointrange geom_polygon geom_quantile geom_raster geom_rect geom_ribbon geom_rug geom_segment geom_smooth geom_stepgeom_text geom_tile geom_violin geom_vline 实例: library(ggplot2) //数据来源

p=ggplot(data=x,mapping=aes(x=x$x1,y=x$y1,colour=factor(x$z),size=displ) //

p+geom_point(aes=factor(x$z),alpha=.5,position='jitter')+stat_smooth()

+scale_color_manual(values=c('red','blue'))+scale_size_continuous(range=c(4,10)) +coord_cartesian(xlim= c(15, 25),ylim=c(15,40))+facet_wrap(~ year, ncol=1) +opts(title='汽车油耗与型号')

22

+labs(y='每加仑高速公路行驶距离',x='每加仑城市公路行驶距离') +guides(size=guide_legend(title='排量'),colour= guide_legend(title='车型',override.aes=list(size=5))) //直方图

q<- ggplot(mpg,aes(x=hwy))//将变量hwy映射到x轴 q+ geom_histogram()

q+ geom_histogram(aes(fill=factor(year),y=..density..),alpha=0.3,colour='black') +stat_density(geom='line',position='identity',size=1.5,aes(colour=factor(year))) +facet_wrap(~year,ncol=1) //柱状图

class2<- mpg$class; class2 <- reorder(class2,class2,length) mpg$class2<- class2

p<- ggplot(mpg, aes(x=class2)) p+ geom_bar(aes(fill=class2)) //饼图

p<- ggplot(mpg, aes(x = factor(1), fill = factor(class)))+geom_bar(width = 1) p+ coord_polar(theta = \//箱线图

p<- ggplot(mpg, aes(class,hwy,fill=class)) p+geom_boxplot() //琴图

p+ geom_violin(alpha=0.3,width=0.9)+geom_jitter(shape=21) //点图

p<- ggplot(diamonds,aes(carat,price)) p+ geom_point() 观察密集散点的方法

?增加扰动 (jitter) ?增加透明度 (alpha) ?二维直方图 (stat_bin2d)

?密度图 (stat_density2d) //密度曲线

p+ stat_bin2d(bins = 60)

p+ stat_density2d(aes(fill = ..level..), geom=\+coord_cartesian(xlim= c(0, 1.5),ylim=c(0,6000))

+scale_fill_continuous(high='red2',low='blue4')//??????? 标尺

在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,比如坐标刻度,可能通过标尺,将坐标进行对数变换;比如颜色属性,也可以通过标尺,进行改变。 ggplot(small)+ geom_point(aes(x = carat, y = price, shape = cut, colour = color))+ scale_y_log10() + scale_colour_manual(values = rainbow(7))

23

//将纵坐标取对数,并手动设置颜色为彩虹色

回归线

ggplot(small,aes(x = carat, y = price)) + geom_point() + scale_y_log10() +stat_smooth() 坐标系统

ggplot(small)+ geom_bar(aes(x = cut, fill = cut)) + coord_flip() //coord_flip()实现坐标轴翻转,转换成极坐标可以由coord_polar()实现

//饼图实际上就是柱状图,只不过是使用极坐标而已,柱状图的高度,对应于饼图的角度 ggplot(small)+ geom_bar(aes(x = factor(1), fill = cut)) + coord_polar(theta =\饼图 //geom_errorbar()画标准误差 分面

ggplot(small,aes(x = carat, y = price)) + geom_point(aes(colour = cut)) +scale_y_log10() + facet_wrap(~cut) + stat_smooth()//facet_wrap() 主题

ggtitle()+xlab()+ylab(),需要改变字体,字体大小,坐标轴,背景等各种元素,这需要通过theme()函数来完成

theme_grey()为默认主题,theme_bw()为白色背景的主题,theme_classic()主题和R的基础画图函数较像 ggthemes包里的主题

theme_economisttheme_economist_white theme_wsj theme_excel theme_few theme_foundationtheme_igray theme_solarized theme_stata theme_tufte 画出囧字

f <-function(x) 1/(x^2 - 1) x <-seq(-3, 3, by = 0.001) y <-f(x)

d <-data.frame(x = x, y = y) p <-ggplot()

p <-p + geom_rect(fill = \xmin = -3,xmax = 3, ymin = -3, ymax = 3, alpha = 0.1)) p <-p +geom_line(data = d, aes(x, y), size = 3) + ylim(-3, 3)

p <-p + theme_bw() + theme(axis.text.x = element_blank(), axis.text.y =element_blank(), legend.position= \

panel.grid.major = element_blank(), panel.background =element_blank(), axis.ticks = element_blank(), panel.border = element_blank())

24

p +xlab(\

//geom_rect矩形框,geom_line线,查看?theme帮助文档

二维密度图

ggplot(diamonds,aes(carat, price)) + stat_density2d(aes(fill = ..level..), geom =\+

scale_fill_continuous(high = \//stat_density_2d二维密度图,scale_fill_continuous填充颜色 图层

图层就是对象的不断叠加

mapdist('XiDan','WangFuJing', 'walking')//计算从西单到王府井步行距离信息

adply(x,fun)//针对数组x的每一个元素调用fun函数结果返回一个数据框

字符串操作: #字符串连接:

paste()#paste(..., sep = \paste(“11”,”22”,sep='/') // 11/22 #字符串分割:

strsplit()#strsplit(x, split, extended = TRUE, fixed = FALSE, perl = FALSE) strsplit(x,split=”,”,fixed=T)//严格按照逗号分割字符串

#计算字符串的字符数: nchar()

#字符串截取: substr(x,start, stop)

substring(text,first, last = 1000000) substr(x,start, stop) <- value

substring(text,first, last = 1000000) <- value

#字符串替换及大小写转换: chartr(old,new, x)

25


R命令(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新小学沪教版数学四年级下册公开课教学设计四则运算(二)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: