2017-08-31 18 views
1

各グラフに凡例を表示する際に問題があります。 Overlapping Histograms on one pageR - 凡例とヒストグラムの問題

それぞれの正方形の隅に伝説があります。しかし、私が使用するコマンドラインでは、このバージョンを拡大表示しています。

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) 

ありがとう!私はlwdとcexを多くの組み合わせに変更しましたが、それでも動作させることはできません。写真のように

+0

ありがとうございます!私はこれで全く新しいです – Orbis

+1

あなたのプロットを再現できるようにあなたのデータ 'DSA'、' DSB'と 'DSC'を提供してください。 'dput(DSA)'などの出力をコピーして貼り付けることでこれを行うことができます。 – useR

+0

btw、このコードはあなたの写真に示されているように4つのうち1つのプロットしか作成しません。 – useR

答えて

1

OPはわずか4つのプロットのいずれかのコードを提供するので、私はちょうどそれで動作しますが、1だけで簡単にすべての伝説に、次の解決策を適用することができます。

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") 

enter image description here

基本的に、y.interspを0.6に減らして、凡例キーの間のy間隔を狭くしました。次に、間隔の縮小後に読みやすくするために、cex=0.7(これはcex=0.5より大きい値)を設定します。オプションのbty = "n"引数は、私の意見では、より表現可能な凡例のボーダーを削除します。

+0

こんにちは、私はあなたの提案を試みた、私は0.1とcex = 0.4にy.interspを減らさなければならなかった、それは動作します。助けてくれてありがとう! – Orbis

+0

@Orbisこれがあなたの質問に答えると思うなら、それを受け入れて他人が見ることができるようにしてください! – useR

関連する問題