0

我正在尝试使用包中geom_link的两点之间绘制一些线段。ggforce我尝试按照文档进行操作,但路径的颜色呈锯齿状且不平滑。我希望有人可以帮助我编写代码,以便我可以解决这些问题。下面是一个例子。

library(tidyverse)
library(ggforce)

dat <- data.frame(
  team = paste("Team", LETTERS[1:10]),
  x1 = runif(10, -0.2, 0.3),
  x2 = runif(10, -0.2, 0.3),
  y1 = runif(10, -0.2, 0.3),
  y2 = runif(10, -0.2, 0.3),
  col = c("#690014", "#03244d", "#004834", "#001E4C", "#000000", "#c41230",
          "#CC0000","#000000", "#005DAA", "#00274c")
)

ggplot(dat) +
  geom_link(aes(x = x1, xend = x2, y = y1, yend = y2, colour = col,
                alpha = stat(index), size = stat(index)), show.legend = FALSE) +
  scale_colour_identity()
4

1 回答 1

1

您的代码很好(实际上,它或多或少与文档完全匹配)。

问题似乎是用于显示或保存绘图的图形设备。如果您使用最新版本的RStudio进行分析,您可以在设置中将图形设备更改为AGGGlobal Options -> General -> Graphics -> Backend.

它现在应该可以正常渲染,包括保存时。

如果您不使用 RStudio 或不想更改设置,则可以RAGG直接使用该包:

library(tidyverse)
library(ggforce)
library(ragg)

dat <- data.frame(
  team = paste("Team", LETTERS[1:10]),
  x1 = runif(10, -0.2, 0.3),
  x2 = runif(10, -0.2, 0.3),
  y1 = runif(10, -0.2, 0.3),
  y2 = runif(10, -0.2, 0.3),
  col = c("#690014", "#03244d", "#004834", "#001E4C", "#000000", "#c41230",
          "#CC0000","#000000", "#005DAA", "#00274c")
)

agg_png("example_agg_plot.png", width = 1000, height = 500, res = 144)
ggplot(dat) +
  geom_link(aes(x = x1, xend = x2, y = y1, yend = y2, colour = col,
                alpha = stat(index), size = stat(index)), show.legend = FALSE) +
  scale_colour_identity()
invisible(dev.off())
于 2021-11-03T04:41:55.737 回答