加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ggplot2学习笔记:修改坐标

(2014-05-11 23:34:55)
标签:

杂谈

分类: R语言

用ggplot2绘图很漂亮,但是,要修改这些图形可不大好办,一些在Excel中很容易的操作,在R中要把人给急死,比如修改坐标的文字、调整坐标轴间隔、添加标签、控制标签格式,改个图例等等,都要查老半天资料。因为ggplot的图形要修改其中的各个零件,需要调用不同的函数,每个函数又要调用各种各样的参数,刚入手时不熟悉这些内容,会很花时间,要多练习,多尝试,才能逐渐上手。

我将陆续把ggplot2绘图的格式修改方面的经验归纳成笔记,一方面加强自己的记忆,另一方面也给需要的人提供参考。ggplot2的绘图很灵活,体现在几个大的方面,包括图形类型多、图形可叠加、各个部件可修改。其中最大的特色是图形可叠加,有点像PS中的图层,可以一层层画上去。不过繁琐的是每个图形都要用程序语句来实现,需要掌握绘图语法,得折腾。目前国内的书籍讲解得比较多的是语法、统计,绘图讲得较少,并且多数是在讲绘图的类型,很少讲如何修改图形的格式,这方面不得不大量地google。好了,不多说,开始讲笔记。

1、修改坐标的函数

修改坐标的这类属性,要用到theme()函数,例句如下:

gg<-ggplot(diamonds)

gg+geom_bar(aes(price,fill=cut)) + theme(axis.text.x=theme_text(family="myFont2",face="bold",size=10,angle=45,color="red"))

效果如下:

解释如下:

  • 本图用内置的diamond数据,随便做了个bar图
  • 凡事要修改坐标文字的格式,都加一句来修改:theme(axis.text.x=theme_text(X轴属性),asix.text.y=theme_text(Y轴属性))
  • theme_text()是存储文字属性的函数,其内置属性如下:
    • family:字体
    • face:粗体、斜体等
    • size:字体大小
    • angle:倾斜角度
    • color:颜色

2、修改字体

其实就算知道可以用theme_text()修改属性,要改起来也是麻烦的事情,因为不知道内置属性的关键字有哪些。比如改字体,直接用"family="宋体""是不会改不了字体的。要提前设置一下字体:

windowsFonts(myFont1=windowsFont("Times New Roman"),myFont2=windowsFont("华文行楷"))

然后才可以用family来修改字体

Family="myfont1"

3、修改字体粗细

Face可以设置的属性有以下几个:

  • plain:普通
  • italic:斜体
  • bold:粗体
  • bold.italic:粗体+斜体

4、修改尺寸大小

这个比较简单,用数字代表字体大小即可,普通的字体可以设置为size=8。

5、修改角度

这个也比较简单,用数字代表角度大小,比如上图的angle=45,表示字体逆时针倾斜45°。范围是0-360。

7、修改颜色

color或者colour都可以修改颜色,颜色用关键字来表示,或者用十六进制的颜色代码来表示。当然最简单的是用关键字来表示颜色,简单明白清楚,但是您可能会发现很难找到ggplot2可以设置的颜色单词。还好经过一番google,找到下图,以后设置颜色不用担心了,有参考了:

8、修改位置

修改位置用下面的参数:

hjust:调整横向位置

vjust:调整纵向位置

上面都设置数字,一般调整0.5左右,可以是负值。

   

以上内容能够解决所有关于坐标轴文字格式调整的问题,但实际上,关于坐标轴调整,还会碰到以下问题:

  • 如何调整坐标轴的刻度?
  • 如何将坐标轴显示为其他文字?
  • 如果坐标轴是时间格式,如果调整格式,调整刻度?
  • 如何限定坐标轴的显示范围?

这些问题放在下一篇笔记中去讲。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有