编程学习ggplot2学习笔记r语言学习

可视化学习笔记(六):ggplot2:坐标轴

2018-02-06  本文已影响273人  100gle

1、坐标轴设置

1.1 坐标轴转换

使用coord_flip()函数来将坐标轴翻转

1.2 连续型坐标轴值域

使用xlim()ylim()函数即可限定坐标轴的取值范围

ylim(0, 10)
scale_y_continuous(limits=c(0, 10))

但如果需要设定scale_y_continuous的其他参数时,同时使用二者会产生其他未知情况;
因此,除了设定坐标轴范围需要外,如还需要调整其他属性,最好一律在scale_y_continuous()内进行

scale_y_continuous(limits=c(5, 6.5))
coord_cartesian(ylim=c(5,6.5))

2、坐标轴修改

2.1 反转坐标轴

对于连续坐标轴,可以通过scale_*_reverse()函数来反转;或者通过限定值域(先写最大值,再写最小值)来调整

2.2 修改项目顺序

对于离散型坐标轴,可以通过scale_*_discrete()函数中的limits参数来手动修改,类似于factor()函数中的level参数

2.3 坐标轴比例缩放

使用coord_fixed()可以对坐标轴进行缩放

2.4 坐标轴标签修改

修改坐标轴标签的方法有以下几种:

  1. 使用xlabylab函数可以为坐标轴添加文本标签
  2. 通过labs函数来设定
  3. 使用scale的其他函数中的name参数来设定

2.5 移除坐标轴

使用theme(axis.title.* = element_text()来处理

2.6 修改坐标轴标签外观

和修改刻度标签外观一样,通过使用element_text()函数及其参数来设定即可

2.5 添加坐标轴直线

在ggplot2中坐标轴的框线一般都绘成白色隐去,如果需要绘制坐标轴线,可以使用axis.line = element_line(colour='black')来绘制

2.6 对数坐标轴

使坐标轴呈对数显示可以通过以下方法:

  1. 对坐标轴变量取对数后再映射到坐标轴上
  2. 使用scale_*_log10()函数

2.7 在坐标轴上使用日期

如果需要绘制时间序列,只要将类型为Date的变量映射到坐标轴即可

对于日期分割点可以通过以下方法来实现:

  1. 通过创建一个新的二分变量来进行映射
  2. 使用seq()函数来时间
datebreaks <- seq(as.Date("1992-06-01"), as.Date("1993-06-01"), by="2 month")

3、刻度线设置

3.1 设置刻度线位置

设置刻度线只需要使用标度中的参数breaks=即可

3.2 移除刻度线和标签

移除刻度线标签需使用theme(axis.text.* = element_blank())函数以及选项

移除刻度线则使用theme(axis.ticks = element_blank())函数及选项

刻度标签、刻度线和网格线的控制根据坐标轴类型而有所不同:

3.3 修改刻度标签文本

如果想要使得坐标轴的刻度映射标签,使用像使用factor()函数一样使用scale_*_continuous()函数来进行操作:

hwp <- ggplot(heightweight, aes(x=ageYear, y=heightIn)) + 
  geom_point()
hwp
hwp + scale_y_continuous(breaks=c(50, 56, 60, 66, 72),
                         labels=c("Tiny", "Really\nshort", "Short",
                                  "Medium", "Tallish"))

3.4 修改刻度标签的外观

对于刻度标签样式的修改,可以通element_text()函数来修改

element_text(angle=#, hjust=#, vjust=#, 
    family='', face='', colour='', size=#)

4、绘制环状图

绘制思路:

  1. 先绘制直方图
  2. 使用coord_polar()函数旋转
  3. 再通过scale_x_continuous()函数中的limits=c(0, 360))参数来设定360度
ggplot(wind, aes(x=DirCat, fill=SpeedCat)) +
  geom_histogram(binwidth=15, origin=-7.5) +
  coord_polar() +
  scale_x_continuous(limits=c(0,360))

上一篇下一篇

猜你喜欢

热点阅读