ggplot - 获取比例信息(has_scale,is_discrete)

时间:2017-10-18 14:47:03

标签: r ggplot2

我正在构建一个允许用户传递ggplot对象然后根据其他参数应用格式的函数。我需要知道绘图使用的刻度(离散/填充/连续)类型,因此我知道要应用的颜色方案类型。

e.g。

 p <- ggplot(mpg, aes(x = displ, y = hwy, colour = cyl)) + geom_point()

str(p$scales$scales)给了我一个看起来很有前途的列表,但很多显示的是功能,我可以解决如何提取细节。

scale_name在控制台中显示'position_d'表示离散,'position_c'表示连续等,但str(p$scales$scale_name)返回null

我已经尝试了

b <- ggplot_build(p)

b$layout$get_scales() etc

但仍然可以使用我无法使用的功能

1 个答案:

答案 0 :(得分:0)

你可以试试这个

p <- ggplot(mpg, aes(x = displ, y = hwy, colour = cyl)) + geom_point()
ggplot_build(p)$layout$panel_scales

$x
$x[[1]]
<ScaleContinuousPosition>
  Range:   1.6 --    7
Limits:  1.6 --    7


$y
$y[[1]]
<ScaleContinuousPosition>
  Range:    12 --   44
Limits:   12 --   44