如何平滑 geom_link 中路径的颜色?
How to smooth the colour of paths in geom_link?
我正在尝试使用 ggforce
包中的 geom_link
在两点之间绘制一些线段。我试过遵循 documentation,但我的路径颜色参差不齐且不平滑。我希望有人可以帮助我处理我的代码,这样我就可以解决这些问题。下面是一个例子。
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()
您的代码很好(实际上,它或多或少与文档完全匹配)。
问题似乎出在用于显示或保存绘图的图形设备上。如果您使用最新版本的 RStudio 进行分析,您可以在设置中将图形设备更改为 AGG
:
Global 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())
我正在尝试使用 ggforce
包中的 geom_link
在两点之间绘制一些线段。我试过遵循 documentation,但我的路径颜色参差不齐且不平滑。我希望有人可以帮助我处理我的代码,这样我就可以解决这些问题。下面是一个例子。
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()
您的代码很好(实际上,它或多或少与文档完全匹配)。
问题似乎出在用于显示或保存绘图的图形设备上。如果您使用最新版本的 RStudio 进行分析,您可以在设置中将图形设备更改为 AGG
:
Global 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())