R-图例和直方图的问题

R-图例和直方图的问题,r,histogram,legend,R,Histogram,Legend,我在每个图表上显示图例时遇到问题。 我想在右上角有一个图例。然而,使用我使用的命令行,我得到了这个放大的版本 par(mfrow = c(2,2)) #plot histograms on one same graph hist(DSA, prob=TRUE, main="Controls", xlab="Sizes (um)", ylab="Frequency", col="yellowgreen",xlim= c(5,25), ylim=c(0,0.5), breaks=10) hi

我在每个图表上显示图例时遇到问题。

我想在右上角有一个图例。然而,使用我使用的命令行,我得到了这个放大的版本

 par(mfrow = c(2,2))

#plot histograms on one same graph 
hist(DSA, prob=TRUE, main="Controls", xlab="Sizes (um)", ylab="Frequency", col="yellowgreen",xlim= c(5,25), ylim=c(0,0.5), breaks=10)
hist(DSB, prob=TRUE, col=rgb(0,0,1,0.5),add=T)
hist(DSC, prob=TRUE, col=rgb(0.8,0,1,0.5),add=T)
box()

plot_colors <- c("yellowgreen","blue", "pink")
legend(x = "topright",inset = 0,
       legend = c("1", "2", "3"), 
       col=plot_colors, lwd=6, cex=0.5,horiz = FALSE)
par(mfrow=c(2,2))
#在同一个图形上绘制直方图
hist(DSA,prob=TRUE,main=“Controls”,xlab=“size(um)”,ylab=“Frequency”,col=“yellowgreen”,xlim=c(5,25),ylim=c(0,0.5),breaks=10)
hist(DSB,prob=TRUE,col=rgb(0,0,1,0.5),add=T)
历史(DSC,概率=TRUE,col=rgb(0.8,0,1,0.5),加法=T)
框()

plot_colorsOP仅为图中所示的四个图中的一个提供了代码,因此我将仅使用该代码,但您可以轻松地将以下解决方案应用于所有图例:

par(mfrow = c(2,2))

# Some madeup data
DSA = rnorm(10000, 15, 2)
DSB = rnorm(10000, 17, 3)
DSC = rnorm(10000, 13, 1)


#plot histograms on one same graph 
hist(DSA, prob=TRUE, main="Controls", xlab="Sizes (um)", ylab="Frequency", col="yellowgreen",xlim= c(5,25), ylim=c(0,0.5), breaks=10)
hist(DSB, prob=TRUE, col=rgb(0,0,1,0.5),add=T)
hist(DSC, prob=TRUE, col=rgb(0.8,0,1,0.5),add=T)
box()

plot_colors <- c("yellowgreen","blue", "pink")
legend(x = "topright",inset = 0,
       legend = c("1", "2", "3"), 
       col=plot_colors, lwd=6, cex=0.7,horiz = FALSE, y.intersp=0.6, bty="n")
par(mfrow=c(2,2))
#一些madeup数据
DSA=rnorm(10000,15,2)
DSB=rnorm(10000,17,3)
DSC=rnorm(10000,13,1)
#在同一个图形上绘制直方图
hist(DSA,prob=TRUE,main=“Controls”,xlab=“size(um)”,ylab=“Frequency”,col=“yellowgreen”,xlim=c(5,25),ylim=c(0,0.5),breaks=10)
hist(DSB,prob=TRUE,col=rgb(0,0,1,0.5),add=T)
历史(DSC,概率=TRUE,col=rgb(0.8,0,1,0.5),加法=T)
框()

非常感谢!我是新来的,请提供您的数据
DSA
DSB
DSC
,以便我们可以复制您的绘图。您可以通过复制和粘贴
dput(DSA)
等的输出来完成此操作。顺便说一句,此代码只生成图片中所示的四个绘图中的一个。您好,我尝试了您的建议,我必须将y.intersp减少到0.1,cex=0.4,并且它可以工作。谢谢你的帮助@奥比斯如果你认为这回答了你的问题,请随意接受它,以便其他人可以看到!