首页 > 解决方案 > 如何根据任何因素在散点图中绘制多边形?

问题描述

我在这里粘贴了数据:数据框包含每个国家/地区对 x 和 y 的多个观察结果。每个国家也是一个地区的一部分。

基于这篇文章,我设法使用 ggplot 在散点图中绘制了多边形/集群,其基础与我的点颜色所基于的因素(即国家)相同。这是我使用的代码:

find_hull <- function(df) df[chull(df$x, df$y), ]
hulls <- ddply(df, "country_name", find_hull)

plot <- ggplot(data = df, aes(x = x, y = y, colour=country_name, fill=country_name)) +
  geom_point() + 
  geom_polygon(data = hulls, alpha = 0.5)
plot

但是如果我想根据地区绘制多边形,并且仍然有国家分配的颜色怎么办?只是更改country_nameregionddplyfind_hull函数时并没有产生令人满意的结果。我有一种感觉,因为我还没有完全理解这个chull函数的作用,但我没有设法把它包起来。

标签: rggplot2

解决方案


ddplyingfind_hull函数就足够了,只需要指定fill=regionin geom_polygon,并在整体中保持未指定ggplot


推荐阅读