• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言画图—ggplot2学习笔记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

       昨天终于把会议投稿的论文完成了,今天开始奋战另一篇拖了两个多月的文章,突然发现我两个月之前在这篇文章中用Excel做的图是那么low(没有贬低Excel的意思,有些方面还是很实用的),然后就在想,干脆用R画图,听说会很高大上,希望会为文章增添色彩,于是~就有了这篇学习笔记!

       第一次写学习笔记,不懂套路,也不懂如何构思,如何让使我的这篇笔记看起来更有条理,就是顺着我学习的步骤,一步一步的将它记录下来。

首先是我查到的R中自带的数据集做折线图的例子,做个试试!

#折线图
library(gcookbook)
library(ggplot2)
#连续变量的情况
ggplot(BOD, aes(x=Time, y=demand)) + geom_line()
#离散变量的情况
BOD1 <- BOD # 赋值数据
BOD1$Time <- factor(BOD1$Time)#变量因子化
ggplot(BOD1, aes(x=Time, y=demand, group=1)) + geom_line(linetype="dotted")

首先是加载gcookbook和ggplot2程序包,然后直接运行ggplot语句,得到下图1,离散变量的情况通过因子化之后得到下图2,因子化是什么鬼,不懂,看看图,好像就是从连续的数据组成的线变成了不连续的点,但折线的形状还是一致的,算了,直接上自己的试验数据做图。

通常用R和SA的语句注释的时候我都会尽可能写的通俗易懂,就像“#接下来试验自己的数据图”,我真是个细致的孩子。首先把数据导入,数据是一切的基本。

#接下来试验自己的数据图
#工作空间
setwd("G:/单个性状")#修改工作空间
#导入数据文件
a<-read.csv("G:单个性状/R画图用my.csv",header=TRUE,sep=",",stringsAsFactors=FALSE)#导入全部数据
summary(a)

head(a)

导入数据后我通常使用 summary(a)或者head(a)来查看数据导入是否正确;

为什么没有head(a)的结果?什么鬼?发现了一件事情:

a<-read.csv("G:R画图用my.csv",header=TRUE,sep=",",stringsAsFactors=FALSE)#导入全部数据
head(a) #无结果,更正为英文状态下输入有结果
曲线<-read.csv("G:R画图用my.csv",header=TRUE,sep=",",stringsAsFactors=FALSE)#导入全部数据
head(曲线)   #有结果

奇怪的是,如果用a来命名数据集,head(a)不出现结果,只有命名成中文才有结果,原来是我中英文混输,一定要在英文状态下输入,否则会出错。

往下:

ggplot(a, aes(x=year, y=CHN)) + geom_line()   #a为数据集名,x=,y=,分别是x轴和y轴

得到折线图:

咦,丑!接下来我们给线加上点,选个好看的形状和看起来顺眼的大小:

ggplot(a, aes(x=year, y=CHN)) + geom_line() + geom_point(size=2, shape=17)

#geom_point是给折线图加上点,size和shape是定义点的大小和形状

稍微能看~接下来画多条折线,在画多条折线前需要对数据集进行修改,把国家和因变量分别汇聚到一列内,下图1为原数据集,下图2为更改后数据集,如图:

往下:

ggplot(a, aes(x=year, y=my, colour=country,group=country))+geom_line(size=1)
#画的图线条太粗,没有美感、可以根据SIZE调节线条粗细

多条折线图如图:

依旧是没眼看~来,修饰下:

ggplot(a,aes(x=year,y=my,color=country,shape=country))+geom_line()+geom_point(size=1)
#注意:geom_point修饰点的大小和形状

这个点好看吗?换个二号试试:

ggplot(a,aes(x=year,y=my,color=country,fill=country))+geom_line()+geom_point(size=2)

 

另外:

在aes中加入

xlab="",ylab="" #设置xy轴的轴标题

#单个变量分面、 依据facet_wrap()
ggplot(data = a) + geom_line(mapping = aes(x =Birthyear, y =my)) + facet_wrap(~country,nrow = 2)

#一个指标下几个水平下分面展示,nrow是分几行,ncol是分几列

#多个变量分面、依据 facet_grid()
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy)) + facet_grid(drv ~ cyl)  #不需要指定nrow和ncol

发现自己真絮叨,今天太晚了,要去采食了,下次接着写,总结下来,用R有时候很方便,但是小细节很多,一旦某个细节弄不明白是真的很折磨人~哭唧唧,哈哈哈哈哈哈!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
论文作图之R语言画斑图/热图发布时间:2022-07-18
下一篇:
手把手教你用R语言制作网络爬虫机器人(二)发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap