ggplot2 PDF 条形图有白线,需要大量放大和外观差异。在幻灯片上
ggplot2 PDF barplot have white lines, require extensive zoom-ins and look diff. on PowerPoint
我正在尝试在 ggplot2 中绘制多个样本的堆积条形图;然而,当我绘制数据图表时,PDF 在每个条形图上都布满了白线。
下面是一些示例代码,您可以看到我的数据是什么样子的:
Expt <- as.data.frame(round(replicate(10, runif(10, 0, 5)), 3))
colnames(Expt) <- c("S_3", "S_5", "S_12", "S_22", "S_25", "S_27", "S_33", "S_52", "S_100", "S_101")
Expt$Phyla <- c("Proteobacteria", "Firmicutes", "Actinobacteria", "Bacteroidetes", "Verrucomicrobia", "Planctomycetes", "Cyanobacteria", "Chlamydiae", "Chloroflexi", "Deinococcus")
colors <- c("navajowhite4", "dodgerblue", "cyan", "orange", "lawngreen", "burlywood1", "black", "pink", "slateblue2", "hotpink")
library(reshape2)
Expt_melt <- melt(Expt, id.vars = "Phyla")
colnames(Expt_melt)[2:3] <- c("Sample", "Abund")
library(ggplot2)
ggplot() + geom_bar(aes(x = Sample, y = Abund, fill = Phyla), data = Expt_melt, stat = 'identity') + scale_fill_manual(values = colors)
此代码生成漂亮的堆叠条形图;然而,我的数据有超过 6000 行和更多的样本,我在 return 中获得的实际图像看起来不同。在我使用的媒体上。
关于为什么会发生这种情况的任何想法?当我将它插入普通的 powerpoint 幻灯片 w/out 它看起来充满内部白线时,我需要能够使用 PDF 缩放 150% 的图表。更不用说,最终,这些图表将被发布,我无法提交仅放大 150% 时看起来正确的 PDF。
调查白线问题,我发现这个 link 可以去除内部条线:
并按照他们的代码,我使用以下代码绘制了数据图表:
ggplot(Expt_melt, aes(x= Sample, y= Abund, fill = Phylum)) + stat_summary(fun.y = sum, geom = "bar") + scale_fill_manual(values = colors)
这产生了下图:
如您所见,这完全删除了我所有的顶部栏 - 这是我的 Phyla (Expt_melt$Phyla),具有较低的 Expt_melt$Abund 值。更不用说,这张图必须放大200%才能看到'normal'。
有什么建议吗?关于为什么这些图表表现出这种行为的任何想法?
谢谢!
ggplot 中条形的默认宽度为 0.9(在分类轴上,每个级别的宽度为 1),因此默认情况下条形之间存在间隙。您可能想尝试设置 width = 1
:
ggplot() +
geom_bar(aes(x = Sample, y = Abund, fill = Phyla),
data = Expt_melt, stat = 'identity',
width = 1) +
scale_fill_manual(values = colors)
我正在尝试在 ggplot2 中绘制多个样本的堆积条形图;然而,当我绘制数据图表时,PDF 在每个条形图上都布满了白线。
下面是一些示例代码,您可以看到我的数据是什么样子的:
Expt <- as.data.frame(round(replicate(10, runif(10, 0, 5)), 3))
colnames(Expt) <- c("S_3", "S_5", "S_12", "S_22", "S_25", "S_27", "S_33", "S_52", "S_100", "S_101")
Expt$Phyla <- c("Proteobacteria", "Firmicutes", "Actinobacteria", "Bacteroidetes", "Verrucomicrobia", "Planctomycetes", "Cyanobacteria", "Chlamydiae", "Chloroflexi", "Deinococcus")
colors <- c("navajowhite4", "dodgerblue", "cyan", "orange", "lawngreen", "burlywood1", "black", "pink", "slateblue2", "hotpink")
library(reshape2)
Expt_melt <- melt(Expt, id.vars = "Phyla")
colnames(Expt_melt)[2:3] <- c("Sample", "Abund")
library(ggplot2)
ggplot() + geom_bar(aes(x = Sample, y = Abund, fill = Phyla), data = Expt_melt, stat = 'identity') + scale_fill_manual(values = colors)
此代码生成漂亮的堆叠条形图;然而,我的数据有超过 6000 行和更多的样本,我在 return 中获得的实际图像看起来不同。在我使用的媒体上。
关于为什么会发生这种情况的任何想法?当我将它插入普通的 powerpoint 幻灯片 w/out 它看起来充满内部白线时,我需要能够使用 PDF 缩放 150% 的图表。更不用说,最终,这些图表将被发布,我无法提交仅放大 150% 时看起来正确的 PDF。
调查白线问题,我发现这个 link 可以去除内部条线:
ggplot(Expt_melt, aes(x= Sample, y= Abund, fill = Phylum)) + stat_summary(fun.y = sum, geom = "bar") + scale_fill_manual(values = colors)
这产生了下图:
如您所见,这完全删除了我所有的顶部栏 - 这是我的 Phyla (Expt_melt$Phyla),具有较低的 Expt_melt$Abund 值。更不用说,这张图必须放大200%才能看到'normal'。
有什么建议吗?关于为什么这些图表表现出这种行为的任何想法?
谢谢!
ggplot 中条形的默认宽度为 0.9(在分类轴上,每个级别的宽度为 1),因此默认情况下条形之间存在间隙。您可能想尝试设置 width = 1
:
ggplot() +
geom_bar(aes(x = Sample, y = Abund, fill = Phyla),
data = Expt_melt, stat = 'identity',
width = 1) +
scale_fill_manual(values = colors)