使用 scale_*_continuous 扩展 geom_voronoi 超过其限制

Extend geom_voronoi past its limits with scale_*_continuous

我给自己定下的任务是制作当前 运行 民主党候选人的 www.politicalcompass.org 图表的 voronoi 图。我已经将它们的位置和重叠点组合成单个观察值。我使用了两个单独的 ggplot 扩展来创建 voronoi 图。

问题是 politicalcompass.org 的图表在两个轴上都从 -10 变为 +10。当我尝试绘制 voronoi 图时,它们只扩展到它们的原始限制,而不是我打算绘制的 -10 到 10 的整个范围。示例和代码如下:

https://github.com/McCartneyAC/average_of_polls/blob/master/stupid_voronoi_one.png?raw=true

https://github.com/McCartneyAC/average_of_polls/blob/master/stupid_voronoi_two.png?raw=true

library(tidyverse)
library(ggrepel)

candidates_list_voronoi <-  tribble(
  ~candidate,~party,~economic,~authoritarian,
  "Bennet","Democratic",8.5,6,
  "Biden","Democratic",5.5,3.5,
  "Booker","Democratic",4,2.5,
  "Buttigieg/Castro","Democratic",6.5,4.5,
  "Delaney","Democratic",4,3.5,
  "Gabbard","Democratic",-1.5,-1.5,
  "Harris","Democratic",5,4,
  "Bullock/Klobuchar","Democratic",5,5,
  "Sanders","Democratic",-1.5,-1,
  "Sestak","Democratic",5.5,2,
  "Warren","Democratic",0.5,1,
  "Williamson","Democratic",2,-1.5,
  "Yang","Democratic",7,1,
  "Hawkins","Green",-5,-3,
  "Vohra","Libertarian",10,1.5,
  "Corker/Pence","Republican",10,8.5,
  "Hogan","Republican",10,8,
  "Kasich","Republican",8,9,
  "Trump","Republican",8.5,8.5,
  "Weld","Republican",9.5,4.5
)


library(ggvoronoi)
candidates_list_voronoi %>% 
  ggplot(aes(economic, authoritarian, label = candidate, fill = candidate)) +
  geom_voronoi(color = "black") +
  geom_label_repel(fill = "#FFFFFF") + 
  scale_x_continuous(limits = c(-10,10))+ 
  scale_y_continuous(limits = c(-10,10))


library(ggforce)
candidates_list_voronoi %>% 
  ggplot(aes(economic, authoritarian)) +  
  geom_voronoi_tile(aes(fill = candidate, group = -1L)) +
  geom_voronoi_segment() +
  geom_label_repel(aes(label = candidate)) + 
  scale_x_continuous(limits = c(-10,10))+ 
  scale_y_continuous(limits = c(-10,10))

您可以在 geom_voronoi 中的 outline 参数中指定边界框(参见插图示例 here)。

outline.df <- data.frame(x = c(-10, 10, 10, -10),
                         y = c(-10, -10, 10, 10))

candidates_list_voronoi %>% 
  ggplot(aes(economic, authoritarian, fill = candidate)) +
  geom_voronoi(outline = outline.df,
               color = "black")

(省略标签部分,因为它对问题不重要。)