当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ggplot2 geom_rug 边的地毯图


地毯图是一种紧凑的可视化,旨在用两个一维边分布补充二维显示。地毯图显示个别案例,因此最好与较小的数据集一起使用。

用法

geom_rug(
  mapping = NULL,
  data = NULL,
  stat = "identity",
  position = "identity",
  ...,
  outside = FALSE,
  sides = "bl",
  length = unit(0.03, "npc"),
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)

参数

mapping

aes() 创建的一组美学映射。如果指定且inherit.aes = TRUE(默认),它将与绘图顶层的默认映射组合。如果没有绘图映射,则必须提供mapping

data

该层要显示的数据。有以下三种选择:

如果默认为 NULL ,则数据继承自 ggplot() 调用中指定的绘图数据。

data.frame 或其他对象将覆盖绘图数据。所有对象都将被强化以生成 DataFrame 。请参阅fortify() 将为其创建变量。

将使用单个参数(绘图数据)调用function。返回值必须是 data.frame ,并将用作图层数据。可以从 formula 创建 function (例如 ~ head(.x, 10) )。

stat

用于该层数据的统计变换,可以作为 ggproto Geom 子类,也可以作为命名去掉 stat_ 前缀的统计数据的字符串(例如 "count" 而不是 "stat_count" )

position

位置调整,可以是命名调整的字符串(例如 "jitter" 使用 position_jitter ),也可以是调用位置调整函数的结果。如果需要更改调整设置,请使用后者。

...

其他参数传递给 layer() 。这些通常是美学,用于将美学设置为固定值,例如 colour = "red"size = 3 。它们也可能是配对的 geom/stat 的参数。

outside

控制是否将地毯流苏移出绘图区域的逻辑。默认为关闭 (FALSE)。您还需要使用coord_cartesian(clip = "off")。当设置为 TRUE 时,还可以考虑将 Sides 参数更改为 "tr"。请参阅示例。

sides

控制地毯出现在绘图的哪一侧的字符串。它可以设置为包含任何 "trbl" 的字符串,用于顶部、右侧、底部和左侧。

length

设置地毯线长度的 grid::unit() 对象。使用比例扩展以避免数据过度绘制。

na.rm

如果 FALSE ,则默认缺失值将被删除并带有警告。如果 TRUE ,缺失值将被静默删除。

show.legend

合乎逻辑的。该层是否应该包含在图例中? NA(默认值)包括是否映射了任何美学。 FALSE 从不包含,而 TRUE 始终包含。它也可以是一个命名的逻辑向量,以精细地选择要显示的美学。

inherit.aes

如果 FALSE ,则覆盖默认美学,而不是与它们组合。这对于定义数据和美观的辅助函数最有用,并且不应继承默认绘图规范的行为,例如borders()

细节

默认情况下,地毯线的绘制长度相当于总绘图大小的 3%。由于连续变量的默认尺度扩展在尺度两端均为 5%,因此地毯不会与默认设置下的任何数据点重叠。

美学

geom_rug() 理解以下美学(所需的美学以粗体显示):

  • alpha

  • colour

  • group

  • linetype

  • linewidth

  • x

  • y

vignette("ggplot2-specs") 中了解有关设置这些美学的更多信息。

例子

p <- ggplot(mtcars, aes(wt, mpg)) +
  geom_point()
p

p + geom_rug()

p + geom_rug(sides="b")    # Rug on bottom only

p + geom_rug(sides="trbl") # All four sides


# Use jittering to avoid overplotting for smaller datasets
ggplot(mpg, aes(displ, cty)) +
  geom_point() +
  geom_rug()


ggplot(mpg, aes(displ, cty)) +
  geom_jitter() +
  geom_rug(alpha = 1/2, position = "jitter")


# move the rug tassels to outside the plot
# remember to set clip = "off".
p +
  geom_rug(outside = TRUE) +
  coord_cartesian(clip = "off")


# set sides to top right, and then move the margins
p +
  geom_rug(outside = TRUE, sides = "tr") +
  coord_cartesian(clip = "off") +
  theme(plot.margin = margin(1, 1, 1, 1, "cm"))


# increase the line length and
# expand axis to avoid overplotting
p +
  geom_rug(length = unit(0.05, "npc")) +
  scale_y_continuous(expand = c(0.1, 0.1))


源代码:R/geom-rug.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Rug plots in the margins。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。