gpt4 book ai didi

r - xlim 和 x 轴在 barplot 中不一样

转载 作者:行者123 更新时间:2023-12-04 02:10:26 24 4
gpt4 key购买 nike

我用以下数据的基本图形覆盖两个条形图(因为它们有不同的比例,到目前为止,在 ggplot 上做这件事是一场噩梦):

> str(pidf)
'data.frame': 1300 obs. of 7 variables:
$ spec1 : num 0.00192 0.00213 0.00151 0.00234 0.00133 ...
$ spec2 : num 0.00241 0.00278 0.00189 0.00264 0.00155 ...
$ spec3 : num 0.00231 0.00262 0.00187 0.00274 0.00165 ...
$ spec4 : num 0.00209 0.0026 0.00166 0.00225 0.00165 ...
$ spec5 : num 0.0025 0.00285 0.00188 0.00285 0.00181 ...
$ numbers: int 1 2 3 4 5 6 7 8 9 10 ...
$ ratios : num 0.59 0.642 0.544 0.625 0.567 ...

这是我的绘图代码:

par(mar = c(5,5,2,5))
barplot(pidf$ratios, col = "skyblue", ylim = c(0, 1),
ylab = "Sequenced Base Ratios", border = NA, main = "Chlorocebus tantalus")
axis(1, at = round(seq(0, 1300, 100)))
par(new = T)
barplot(pidf$spec5, col = "chartreuse3", border = NA, ylim = c(0, 0.003),
axes = F, xlab = NA, ylab = NA)
axis(side = 4)
mtext(side = 4, line = 3, expression(pi))
legend("topright", legend=c(expression(pi), "Ratios"), cex = 0.75,
pch=c(15, 15), col=c("chartreuse3", "skyblue"))

当我运行这段代码时,x 轴比数据短 如果我在第一个图中指定 xlim = c(1,1300),那么我会得到这个

有谁知道为什么会这样,如何解决?我想这可能与面值有关,但我需要这些以便为我在右侧绘制的轴留出空间。提前致谢!

最佳答案

我认为问题在于条形图不会自动按单位间隔定位。默认情况下,barplot 在条形之间添加 0.2 个单位的间隙(请参阅 ?barplot,搜索“空格”)。例如,如果我们有 20 个柱,则 x 轴的右边缘位于 x=24:

z <- 1:20
barplot(z)
axis(side=1,at=c(0,24))

enter image description here

对于您的应用程序,通过指定 space=0 可能最容易适应它:

barplot(z,space=0)
axis(side=1,at=c(0,20))

enter image description here

关于r - xlim 和 x 轴在 barplot 中不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39102473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com