我找不到一种方法来删除geom_ol()中每一列周围出现的轮廓,特别是在导出为pdf(需要矢量图形)时.

超过col=NAlinewidth=0应该会掩盖轮廓,但似乎不起作用.如果我以PNG格式导出,即使不包括这些参数,列轮廓也会消失.

我想将每个数据点表示为一个条形图:我不想用geom_line()+ geom_area()的组合平滑数据. 然而,每一列周围的轮廓是分散注意力的,我想删除它们.

感谢您的真知灼见!

NOTE:我无法上传pdf,所以在从R导出后,我将pdf转换为高分辨率的PNG.

df <- data.frame(
  Position = rep(1:300, 3),
  Signal = sample(1:30, 900, replace=TRUE),
  Group = c(rep("A", 300), rep("B", 300), rep("C", 300))
  )

plot <- ggplot() +
  geom_col(data = df, aes(x=Position, y=Signal, fill=Group), col=NA, size=0) +
  facet_grid(Group~.)

ggsave("~/Desktop/plot.pdf", plot, device = "pdf")
ggsave("~/Desktop/plot.png", plot, device = png, dpi=300)

# I've also tried cairo - similar outcome
ggsave("~/Desktop/plot_cairo.pdf", plot, device = cairo_pdf)

UPDATE加上width=1参数mostly就解决了这个问题(感谢Gregor、Artëm和Zé).细线轮廓保留在相邻y值不同的列处,而具有相同y值的相邻列没有所需的轮廓.

col=NULLlinewidth=0参数似乎对pdf输出没有任何影响.

plot2 <- ggplot() +
  geom_col(data = df, aes(x=Position, y=Signal, fill=Group), width=1, col=NA, linewidth=0) +
  facet_grid(Group~.)
ggsave("~/Desktop/plot2.pdf", plot2, device = "pdf")

# Omitting col and linewidth arguments
plot3 <- ggplot() +
  geom_col(data = df, aes(x=Position, y=Signal, fill=Group), width=1) +
  facet_grid(Group~.)
ggsave("~/Desktop/plot3.pdf", plot3, device = "pdf")

Plot PDF VERSION (Click image to Zoom-in) PDF VERSION

Plot PNG VERSION (Click image to Zoom-in) PNG VERSION

UPDATE: Plot2 (Click image to Zoom-in) Plot2

UPDATE: Plot3 (Click image to Zoom-in) Plot3

推荐答案

默认情况下,ggplot在字形和条形之间放置空格,这是它们宽度的0.1(参见help:??ggplot2::geom_col).所以你应该把??ggplot2::geom_col%的宽度.

library(ggplot2)
ggplot() +
    geom_col(data = df, aes(x=Position, y=Signal, fill=Group), width = 1) +
    facet_grid(Group~.)

但是,它们将是独立的图形对象,如果您想要在Corel Drawing、Adobe Illustrator等中使用此向量图像,请记住这一点,因此您可能应该考虑geom_aree或geom_step函数,如下所示:

library(tidyverse)
df1 <- df %>% 
    mutate(Position1 = Position - 1) %>% 
    pivot_longer(names_to = NULL, values_to = "Position", -c("Signal", "Group"))

ggplot(df1, aes(Position, Signal, fill = Group)) + 
    geom_area() +
    facet_grid(Group~.)

此外:

  • 不再支持size参数,请改用linewidth
  • 在这里,论点col也是毫无意义的

R相关问答推荐

根据列表中项目的名称多次合并数据框和列表

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

将非重复序列高效转换为长格式

使用sf或terra的LINESTRAING的累积长度

汇总数据表中两个特定列条目的值

无法正确设置动态创建的Quarto标注的格式

用约翰逊分布进行均值比较

在保留列表元素属性的同时替换列表元素

R:如果为NA,则根据条件,使用列名模式将缺少的值替换为另一列中的值

停止ggplot将多行减少到一行

远离理论值的伽马密度曲线下面积的近似

用多边形替换地块点

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

如何在GALT包的函数&geom_x样条线中调整线宽

名字的模糊匹配

按两个条件自动过滤数据

图中显示错误 colored颜色 的图例geom_sf

删除r中每个因素级别的最后2行

使用nls()函数的非线性模型的半正态图