13. ggplot2中离散数据的坐标轴映射

2022-12-21  本文已影响0人  心惊梦醒

离散变量的position scales设置中的limits/breaks/labels
离散变量的默认position scale函数是scale_*_discrete()

  1. 离散变量是如何映射到位置坐标轴上的?
    ggplot将每个category映射为一个整数值,然后在对应坐标位置上绘制几何图形(geom)。,从如下实例可以看到,7个class映射为整数1~7:
ggplot(mpg, aes(x = hwy, y = class)) + 
  geom_point() +
  annotate("text", x = 5, y = 1:7, label = 1:7)
  1. 离散型变量中各categories的顺序是怎么控制的?如何自定义?
    对连续型变量,直接根据其值在对应坐标位置上绘制几何图形,不需要考虑值的顺序问题。对离散型变量,应是通过因子化这种方式来确定顺序的。
    有多种方式来控制离散数据中categories的顺序:
df1 <- df <- data.frame(x=LETTERS[1:5],y=1+rnorm(5))
p1 <- ggplot(df,aes(x,y)) + geom_col()

# 通过levels设置顺序
df1$x <- factor(df1$x,levels=c("E","D","C","B","A"))
p2 <- ggplot(df1,aes(x,y)) + geom_col()

# reorder()根据另一个变量的值对离散型变量进行排序
ggplot(mpg, aes(reorder(manufacturer, cty), cty)) + geom_point()
# p3与p2等价
p3 <- ggplot(df,aes(x,y)) + geom_col() + scale_x_discrete(limits=c("E","D","C","B","A"))
  1. limitsbreakslabels参数是如何使用的?
上一篇 下一篇

猜你喜欢

热点阅读