【发布时间】:2018-01-25 13:57:57
【问题描述】:
我正在绘制使用haven semantics 标记的数据,即变量和值具有通过属性定义的标签。
通常,这些标签也是我想要的轴标题和刻度。
library(ggplot2)
mtcars$mpg = haven::labelled(mtcars$mpg, labels = c("low" = 10, "high" = 30))
attributes(mtcars$mpg)$label = "miles per gallon"
ggplot(mtcars, aes(mpg, cyl)) + geom_point() +
scale_x_continuous(attributes(mtcars$mpg)$label,
breaks = attributes(mtcars$mpg)$labels,
labels = names(attributes(mtcars$mpg)$labels))
我能不能写一个助手,用更容易迭代的东西来代替那个费力的 scale_x_continuous 语句?例如。就像是
scale_x_continuous(label_from_attr, breaks = breaks_from_attr, labels = value_labels_from_attr)。或者甚至可以用+ add_labels_from_attributes() 替换整个东西?
我知道我可以编写/使用像 Hmisc::label 这样的助手来稍微缩短上面的属性代码,但这不是我想要的。
【问题讨论】:
-
看看
Hmisc包,它有很多用于 ggplot 的“使用标签绘图”功能。我不确定避风港的兼容性,但我认为它使用与属性规范相同的标签。