坐标 vs. 比例尺

ggplot2 数据可视化进阶

Rick Scavetta

Founder, Scavetta Academy

绘制原始数据

ggplot(msleep, aes(bodywt, y = 1)) +
  geom_jitter() +
  scale_x_continuous(limits = c(0, 7000), 
                     breaks = seq(0, 7000, 1000))

偏斜数据

ggplot2 数据可视化进阶

转换原始数据

ggplot(msleep, aes(log10(bodywt), y = 1)) +
  geom_jitter() +
  scale_x_continuous(limits = c(-3, 4),
                     breaks = -3:4)

转换后的原始值

ggplot2 数据可视化进阶

添加对数刻度标注

ggplot(msleep, aes(log10(bodywt), y = 1)) +
  geom_jitter() +
  scale_x_continuous(limits = c(-3, 4),
                     breaks = -3:4) +
  annotation_logticks(sides = "b")

转换值(含刻度标记)

ggplot2 数据可视化进阶

使用 scale_*_log10()

ggplot(msleep, aes(bodywt, y = 1)) +
  geom_jitter() +
  scale_x_log10(limits = c(1e-03, 1e+04))

比例尺变换

ggplot2 数据可视化进阶

比较直接变换与 scale_*_log10() 的输出

转换后的原始值

比例尺变换

ggplot2 数据可视化进阶

使用 coord_trans()

ggplot(msleep, aes(bodywt, y = 1)) +
  geom_jitter() +
  coord_trans(x = "log10") 

坐标变换

ggplot2 数据可视化进阶

比较 scale_*_log10() 与 coord_trans() 的输出

坐标变换

比例尺变换

ggplot2 数据可视化进阶

调整标签

坐标重标注

比例尺重标注

ggplot2 数据可视化进阶

开始练习

ggplot2 数据可视化进阶

Preparing Video For Download...