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


R ggplot2 geom_point 积分


点几何用于创建散点图。散点图对于显示两个连续变量之间的关系最有用。它可用于比较一个连续变量和一个分类变量,或两个分类变量,但 geom_jitter()geom_count()geom_bin2d() 等变体通常更合适。气泡图是一个散点图,其中第三个变量映射到点的大小。

用法

geom_point(
  mapping = NULL,
  data = NULL,
  stat = "identity",
  position = "identity",
  ...,
  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 的参数。

na.rm

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

show.legend

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

inherit.aes

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

过度绘图

散点图最大的潜在问题是过度绘制:只要有多个点,点就可能会绘制在另一个点之上。这会严重扭曲情节的视觉外观。这个问题没有单一的解决方案,但有一些技术可以提供帮助。您可以使用 geom_smooth()geom_quantile()geom_density_2d() 添加附加信息。如果您几乎没有唯一的 x 值,geom_boxplot() 也可能有用。

或者,您可以使用 geom_count()geom_hex()geom_density2d() 汇总每个位置的点数并以某种方式显示。

另一种技术是使点透明(例如 geom_point(alpha = 0.05) )或非常小(例如 geom_point(shape = ".") )。

美学

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

  • x

  • y

  • alpha

  • colour

  • fill

  • group

  • shape

  • size

  • stroke

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

例子

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


# Add aesthetic mappings
p + geom_point(aes(colour = factor(cyl)))

p + geom_point(aes(shape = factor(cyl)))

# A "bubblechart":
p + geom_point(aes(size = qsec))


# Set aesthetics to fixed value
ggplot(mtcars, aes(wt, mpg)) + geom_point(colour = "red", size = 3)


# \donttest{
# Varying alpha is useful for large datasets
d <- ggplot(diamonds, aes(carat, price))
d + geom_point(alpha = 1/10)

d + geom_point(alpha = 1/20)

d + geom_point(alpha = 1/100)

# }

# For shapes that have a border (like 21), you can colour the inside and
# outside separately. Use the stroke aesthetic to modify the width of the
# border
ggplot(mtcars, aes(wt, mpg)) +
  geom_point(shape = 21, colour = "black", fill = "white", size = 5, stroke = 5)


# \donttest{
# You can create interesting shapes by layering multiple points of
# different sizes
p <- ggplot(mtcars, aes(mpg, wt, shape = factor(cyl)))
p +
  geom_point(aes(colour = factor(cyl)), size = 4) +
  geom_point(colour = "grey90", size = 1.5)

p +
  geom_point(colour = "black", size = 4.5) +
  geom_point(colour = "pink", size = 4) +
  geom_point(aes(shape = factor(cyl)))


# geom_point warns when missing values have been dropped from the data set
# and not plotted, you can turn this off by setting na.rm = TRUE
set.seed(1)
mtcars2 <- transform(mtcars, mpg = ifelse(runif(32) < 0.2, NA, mpg))
ggplot(mtcars2, aes(wt, mpg)) +
  geom_point()
#> Warning: Removed 4 rows containing missing values (`geom_point()`).

ggplot(mtcars2, aes(wt, mpg)) +
  geom_point(na.rm = TRUE)

# }
源代码:R/geom-point.R

相关用法


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