在R的两侧绘制X轴上的一个条形图
问题描述:
我目前正在试图绘制一个条形图的X轴的两侧,因此我可以很容易地比较两个不同的向量在各个Y点在R的两侧绘制X轴上的一个条形图
我大部分都想通了,我无法以某种方式添加第二个向量。我认为最简单的方法可以让我更清楚我想要的是向您展示下面的图像。
我想要的是将cleanvector2从X轴向下“翻转”,因此从0开始向下扩展。在Y轴上也优选具有正值。
和代码为目前使用的:
naam=" "
filenaam=paste(t, ".png", sep="")
bitmap(filenaam, type="png16m", res=300)
cleanvector1=c(1.29 1.93 1.71 1.35 1.54 0.73 1.41 1.52 1.43 1.09 0.96 0.87 2.29 1.50 0.67)
cleanvector2=c(1.29 1.93 1.71 1.35 1.54 0.73 1.41 1.52 1.43 1.09 0.96 0.87 2.29 1.50 0.67)
cleanvector2=cleanvector2*-1
barplot(rollapply(cleanvector1, 2,mean, by=1, fill=NA), main=naam, ylim=c(max(cleanvector1)*-1,max(cleanvector1)), xlab="200 basepair bins")
# barplot(rollapply(cleanvector2, 2,mean, by=1, fill=NA))
abline(h=1, col="darkred")
abline(h=-1, col="darkred")
axis(side=1)
dev.off()
答
这里有一个最小的工作示例。需要注意两点:代码中的cleanvector*
缺少逗号,这使得人们难以重现结果;您应该复制并粘贴来自dput(cleanvector1)
。其次,由于rollapply
(我假设)来自zoo
包,因此示例应已加载该包,或使用zoo::rollapply
。
给第二矢量添加到barplot,使用barplot(..., add = TRUE)
:
cleanvector1 <- c(1.29, 1.93, 1.71, 1.35, 1.54, 0.73, 1.41, 1.52, 1.43, 1.09,
0.96, 0.87, 2.29, 1.5, 0.67)
cleanvector2 <- cleanvector1 * -1
barplot(zoo::rollapply(cleanvector1, 2, mean, fill = NA),
ylim=c(max(cleanvector1) * -1, max(cleanvector1)),
xlab="200 basepair bins")
barplot(zoo::rollapply(cleanvector2, 2, mean, fill = NA),
add = TRUE)
abline(h = 1, col = "darkred")
abline(h = -1, col = "darkred")
你应该在[重现的格式]共享您的数据(http://stackoverflow.com/questions/5963269/how-to-让 - 一个伟大-R重现-例子)。还要让你的代码尽可能少地重现问题('for'循环和'bitmap'对于这个问题似乎并不重要。另外,也许你可以更好地描述所需输出的样子是什么样子? – MrFlick
会这么做,给我一分钟 – Xizam
你刚才在一个小时前问完全相同的问题,这是不清楚的,然后 – csgillespie