360SDN.COM

R语言----绘图学习笔记之Scatter plots

来源:  2017-07-27 18:30:04    评论:0点击:

来源:youxiachai
最近某项目要搞数据挖掘,需要对数据进行可视化显示,原本我是打算直接用excel 算了,打算,用了一段时间,发现有些数据图用excel麻烦得要命,然后,上网找了一下,原来,有在这方面也有一门专门的语言----R语言,我发现,用它绘制数据图十分强大,就打算花几天,就学习如何用R语言绘制数据图

散布图(scatter plots)

需要掌握的命令:

plot()

xyplot()

qplot()

text()

smoothScatter()

matrix()

jitter()

rbinom()

rnorm()

lines()

lowess()

nls()

用的的包:

ggplot2

lattice

scattersplot3d

帮助用法:

命令行里面直接打

?你要查的命令即可

基础用法:

1
plot(cars$dist~cars$speed)

image

更多用法在R控制台中打上

1
?plot

你就清楚用法了

xyplot

数据汇总方法

1
xyplot(Sepal.Length~Sepal.Width,data=iris,groups=Species,auto.key=list(corner=c(1,1)))

image

格栅

qplot()

1
qplot(Sepal.Length,Sepal.Width,data=iris,col=as.factor(Species),size=as.factor(Species),shape=as.factor(Species))

image

标识点

1
2
plot(mpg~disp,data=mtcars)
text(160,21,"Mazdz RX4")

 

image

 

抖动(jitter)

1
2
3
x <- rbinom(1000, 10, 0.25)
y <- rbinom(1000, 10, 0.25)
plot(x, y)

image

抖动后

1
plot(jitter(x),jitter(y))

 

image

x所有点都可以显示出来

 

直线模式:

1
2
3
plot(mtcars$mpg~mtcars$disp)
lmfit <- lm(mtcars$mpg~mtcars$disp)
abline(lmfit)

 

image

非线性模式的曲线:

1
2
3
4
5
x <- -(1:100)/10
y <- 100+10*exp(x/2)+rnorm(x)/10
nlmod <- nls(y~Const+A*exp(B*x),trace=TRUE)
plot(x,y)
lines(x,predict(nlmod),col="red")

 

image

非参数值的曲线(英文是non-parametric,我也搞不清楚这样了解对不对)

1
2
3
plot(cars, main="测试lowess")
lines(lowess(cars), col="red")
lines(lowess(cars, f=0.3), col="blue")

 

image

制作3D视图

需要使用 scattersplot3d 包

1
scatterplot(mtcars$wt, mtcars$disp, mtcars$mpg)

 

image

QQ图(研究正态分布的一种图…)

1
2
qqnorm(mtcars$mpg)
qqline(mtcars$mpg)

image

在坐标轴上显示数据密度

1
2
3
x <- rnorm(1000)
plot(density(x))
rug(x)

image

大数据的平滑分散图显示

1
2
3
4
n <- 1000000
x <- matrix(rnorm(n), ncol=2)
y <- matrix(rnorm(n,mean=3,sd=1.5), ncol=2)
smoothScatter(x,y)

 

image

这么看正态分布图挺带感的

 

资源检索

http://addictedtor.free.fr/graphiques/


作者:游戏阿柴
出处:http://www.cnblogs.com/youxilua
 本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
微博联系:新浪微博
用支付宝赞助博主:http://me.alipay.com/youxilua




 

ggplot 画 条形图

今天开会谈了半天自己的研究结果,同事皱着眉头,第一好像她没大听懂,第二感觉眼前一亮,但不知怎么落地。落地这个事情,交给时间吧,我想练熟我的分析。

今天搞了个简单的,条形图。

就是EXCEL里面经常玩的柱状图。对比了一下boxplot和ggplot,还是ggplot功能更强大一些,做出的图也更好看。

详细的解释下面这条命令吧。

 

ggplot(data = ls, mapping = aes(x = dim_province_name, y = ratio)) +geom_bar(stat = 'identity', fill = 'steelblue', colour = 'black')+geom_text(aes(label = round(ratio,2)), vjust = 1.5, colour = "white",size=2)
#按ratio值的大小,重新排列条形图的顺序,只需将aes()中x的属性用reorder()函数更改即可。
ggplot(data = ls, mapping = aes(x = reorder(dim_province_name,ratio), y = ratio)) +geom_bar(stat = 'identity', fill = 'steelblue', colour = 'black')+geom_text(aes(label = round(ratio,2)), vjust = 1.5, colour = "white",size=2)+xlab('province')
 
ls 是个data frame 类型的集合,里面我存了几个变量,其中呢dim_province_name, ratio 是我用来写x 轴和y轴的,放在aes的框框里面,如果我想排序,只需将aes()中x的属性用reorder()函数更改就可以了。
geom_bar 就是条形图了,identity 就是独立不做任何改变即可。 fill 来填充颜色,colour呢用来框边。 geom_text 用来写标签,ratio 位数太长,我用了一个round,只留了两位。size 调节大小。xlab 来说明x 轴的注释。
 
ggplot 是个特别包容的作图工具,感觉只要记住他的几个参数,他总是特别善良真诚对你。
不错哦。
感觉像圣经里的话,难道是佛经?!

 

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权