我如何将条形图放在 r 中另一个图的顶部
How do i put a barplot on top of another graph in r
我在尝试创建图表时遇到了问题,该图表将如下图所示:
这张图片由点图之上的条形图组成。
我尝试使用 par(fig) 将这两个放在彼此之上,但我没有得到想要的结果,而是让它们相互覆盖,或者其中一个被另一个覆盖。
这是我的代码:
y1=rnorm(1000, mean=0, sd=1)
y2=rnorm(1000, mean=0, sd=1)
y=hist(y1, freq=TRUE, breaks=100)
dev.off()
par(fig=c(1,0,1,0.75),mar=c(3,0,4,0), font.axis=2,
cex.axis=1.1, cex.sub=1.1, crt=90)
plot(y1,y2, type="n", xlim=c(-3,3),ylim=c(-3,3), ann=FALSE)
points(y1,y2, pch=21, bg="red")
par(new=TRUE, fig=c(1,0.75,0,1),mar=c(3,0,4,0), font.main=2, font.sub=2, cex.main=1.1)
barplot(y$density, axes=FALSE, horiz=FALSE, ylim=c(0,0.6),
space=5, ann=FALSE)
title("Hustota normálního rozdělení", side = 3, line = 2)
mtext("(generováno 1000 čísel s parametry sigma=0, -1)",
side = 3, line = 1)
我不知道我的代码是否有错误,或者这个方法是否行不通。我是初学者,所以如果我的问题很愚蠢,我深表歉意。
提前感谢您的帮助
很漂亮,只是你的 par
有点不对劲。试试这个:
par(fig=c(0,1,0,.75),mar=c(3,1,4,1), font.axis=2,
cex.axis=1.1, cex.sub=1.1, crt=90)
plot(y1,y2, type="n", xlim=c(-3,3),ylim=c(-3,3), ann=FALSE)
points(y1,y2, pch=21, bg="red")
par(new=TRUE, fig=c(0,1,.415,1),mar=c(3,1,4,1), font.main=2, font.sub=2, cex.main=1.1)
barplot(y$density, axes=FALSE, horiz=FALSE, ylim=c(0,0.6),
space=5, ann=FALSE)
mtext("Hustota normálního rozdělení", side = 3, line = 2)
mtext("(generováno 1000 čísel s parametry sigma=0, -1)",
side = 3, line = 1)
我在尝试创建图表时遇到了问题,该图表将如下图所示:
这张图片由点图之上的条形图组成。 我尝试使用 par(fig) 将这两个放在彼此之上,但我没有得到想要的结果,而是让它们相互覆盖,或者其中一个被另一个覆盖。
这是我的代码:
y1=rnorm(1000, mean=0, sd=1)
y2=rnorm(1000, mean=0, sd=1)
y=hist(y1, freq=TRUE, breaks=100)
dev.off()
par(fig=c(1,0,1,0.75),mar=c(3,0,4,0), font.axis=2,
cex.axis=1.1, cex.sub=1.1, crt=90)
plot(y1,y2, type="n", xlim=c(-3,3),ylim=c(-3,3), ann=FALSE)
points(y1,y2, pch=21, bg="red")
par(new=TRUE, fig=c(1,0.75,0,1),mar=c(3,0,4,0), font.main=2, font.sub=2, cex.main=1.1)
barplot(y$density, axes=FALSE, horiz=FALSE, ylim=c(0,0.6),
space=5, ann=FALSE)
title("Hustota normálního rozdělení", side = 3, line = 2)
mtext("(generováno 1000 čísel s parametry sigma=0, -1)",
side = 3, line = 1)
我不知道我的代码是否有错误,或者这个方法是否行不通。我是初学者,所以如果我的问题很愚蠢,我深表歉意。
提前感谢您的帮助
很漂亮,只是你的 par
有点不对劲。试试这个:
par(fig=c(0,1,0,.75),mar=c(3,1,4,1), font.axis=2,
cex.axis=1.1, cex.sub=1.1, crt=90)
plot(y1,y2, type="n", xlim=c(-3,3),ylim=c(-3,3), ann=FALSE)
points(y1,y2, pch=21, bg="red")
par(new=TRUE, fig=c(0,1,.415,1),mar=c(3,1,4,1), font.main=2, font.sub=2, cex.main=1.1)
barplot(y$density, axes=FALSE, horiz=FALSE, ylim=c(0,0.6),
space=5, ann=FALSE)
mtext("Hustota normálního rozdělení", side = 3, line = 2)
mtext("(generováno 1000 čísel s parametry sigma=0, -1)",
side = 3, line = 1)