我在R中使用ggplot2包时遇到了一些问题。我有很多具有类似结构的数据,并想要绘制它们。因此,我想我可以编写一个函数并在循环中使用它。问题是不同的布局。在下面的示例中,有包含坐标(x和y)和值的df1。
df1 <- data.frame(x_coord = c(1:100,1:100), y_coord = c(100:1, 1:100),
value = LETTERS[1:10])
Df2几乎相同,但具有更长的值名称:
df2 <- data.frame(x_coord = c(1:100,1:100), y_coord = c(100:1, 1:100),
value = paste0("longer_legend_entry_" ,LETTERS[1:10] ) )
我的目标是使用 ggplot 来绘制 df1 和 df2 的图表,并使其大小相同。因此,我使用了 coord_fixed() 来保持它们的比例。但是,由于我需要在将图表保存为 PNG 格式时向 ggsave() 指定英寸大小,所以图例的不同大小会引起问题。
ggplot(data = df1, aes( x = x_coord, y = y_coord, color = value ) ) +
geom_point() +
theme( legend.position="bottom" ) +
coord_fixed()
ggsave("plot1.png", width=3, height=3, dpi=100)
ggplot(data = df2, aes( x = x_coord, y = y_coord, color = value ) ) +
geom_point() +
theme( legend.position="bottom" ) +
coord_fixed()
ggsave("plot2.png", width=3, height=3, dpi=100)
每个PNG图片的大小应该相同,即使图例不同。
非常感谢!