データをグループ化しました。各バーのサンプル サイズは、0 サンプルから >600 までの範囲で異なります。異なるデータに対してこの同じグラフのパネルを 2 つ追加したいのですが、単純に各バーの上にサンプル サイズを書いた場合、非常に混雑して読みにくくなります。
2 番目の軸を作成し、サンプル サイズを棒グラフ上にドット プロットとしてプロットすることにしました。ただし、取得できないため、ドットがバーの上に整列します。バーの幅と、グループ化されたバーとバーのセットの間の間隔を調整してみました。また、ドット プロットに設定された間隔は、これらの幅/間隔と同じにする必要があります (頂点を参照)。しかし、明らかにそうではありません (下のリンクの写真を参照)。誰が何がうまくいかないのか考えていますか? 修正はありますか、それともサンプル サイズを伝える別の方法を試す必要がありますか?
これは、図を描画するために使用しているコードの簡素化されたバージョンと、現在の外観の図です。
#From https://statisticsglobe.com/r-draw-plot-with-two-y-axes
par(mar = c(5, 4, 4, 4) + 0.3) # Additional space for second y-axis
barplot(t(mxAe), beside=T,
space=c(0,0.75), width=c(0.75,0.75), # Spacing of bars
las=2, col= c("#DDCC77", "#44AA99") ,
ylim=c(0,100) ,
xlim=c(0.5,45),
main="")
par(new = TRUE) # Add new plot
plot(x=mxAe2$place,y=mxAe2$Tot, pch = 16,
cex= 0.5, col = 1, axes = FALSE,
xlab = "", ylab = "") # Create second plot without axes
axis(side = 4, at = pretty(range(0,800))) # Add second axis
abline(v=verts, col="gray30", lty=3) # Add vertical lines along dot plot points
verts <- c(1,1.75,3,3.75,5,5.75,7,7.75,9,9.75,11,11.75,
13, 13.75,15,15.75,17,17.75, 19, 19.75,21,21.75,
23,23.75,25,25.75,27,27.75,29,29.75,31,31.75,
33,33.75,35,35.75,37,37.75,39,39.75,41,41.75,43,43.75) #Position of dots
再現可能なコード:
df_mxAe <- data.frame(group1 <- c(9,0,30),group2 <- c(5,20,90))
dotx <- c(1.375,2.125,3.625,4.375,5.875,6.625)
doty <- c(200, 400, 0, 600, 50, 100)
par(mar = c(5, 4, 4, 4) + 0.3) # Additional space for second y-axis
barplot(t(df_mxAe), beside=T, space=c(0,1), width=c(0.75,0.75),
las=2 ,
col= c("#DDCC77", "#44AA99") ,
ylim=c(0,100),
xlim=c(0.5,6.625),
main="") # Create first plot
par(new = TRUE) # Add new plot
plot(x=dotx,y=doty, pch = 18,
cex= 0.5, col = 1, axes = FALSE, xlim=c(0.5,6.625),
xlab = "", ylab = "") # Create second plot without axes
axis(side = 4, at = pretty(range(0,800))) # Add second axis
abline(v=dotx, col="gray30", lty=3) # Add vertical lines along dot plot points