統計ソフトEZRは、無料で使えて、しかもメニューから選択するタイプの使いやすい統計ソフトだ。
グラフを描く機能も優れている。
たまに、グラフの凡例がグラフと重なることがある。
それを調整するにはどうしたらよいか?
EZRでグラフを描くには?
ヒストグラムや散布図など一般的なグラフは、「グラフと表」から選択する。たいていのグラフはこのメニューから描ける。
カプランマイヤー曲線を描きたいときは、「統計解析」→「生存期間の解析」→「Logrank検定」のメニューから描く。
観察期間変数、イベント変数、群別変数を選択しOKをクリックすれば以下のようなグラフが描ける。
EZRでグラフの凡例の位置を調整するには?
右上に「凡例(はんれい)」があるのだが、グラフと重なってしまっている。
この位置を調整するには、どうしたらよいか?
二つ方法が思いつく。
1.凡例の場所を変える
凡例は今右上にあるが、これを左下にもっていくことができる。
Rスクリプトの一部を変更して、再実行すると変更できる。
変更前のRスクリプトは以下の通り。
plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, xlab="futime", ylab="Probability") xticks <- axTicks(1) n.atrisk <- nrisk(km, xticks) for (i in 1:length(km$strata)){axis(1, at = xticks, labels = n.atrisk[i,], line=3+i, tick = FALSE)} for (i in 1:length(km$strata)){mtext(legend[i], at=-(xticks[2]-xticks[1])/2, side=1, line=4+i, cex=1)} title(xlab = "Number at risk", line = 3.5, adj = 0) legend ("topright", legend, col=1:32, lty=1, lwd=1, box.lty=0, title="agec")
legend()内の"topright"を"bottomleft"に変更して、再実行する。
plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, xlab="futime", ylab="Probability") xticks <- axTicks(1) n.atrisk <- nrisk(km, xticks) for (i in 1:length(km$strata)){axis(1, at = xticks, labels = n.atrisk[i,], line=3+i, tick = FALSE)} for (i in 1:length(km$strata)){mtext(legend[i], at=-(xticks[2]-xticks[1])/2, side=1, line=4+i, cex=1)} title(xlab = "Number at risk", line = 3.5, adj = 0) legend ("bottomleft", legend, col=1:32, lty=1, lwd=1, box.lty=0, title="agec")
そうすると以下のように凡例が左下に描かれる。これで重なりを回避できた。
2.Y軸を延長する
今回の例はY軸が生存率で1.0より高いのは適切ではないとは思うが、Y軸の最大値を大きくする方法でも重なりを回避できる。
plot()の中に、ylim=c(0, 1.5)と書き入れてみる。
plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, xlab="futime", ylab="Probability", ylim=c(0, 1.5)) xticks <- axTicks(1) n.atrisk <- nrisk(km, xticks) for (i in 1:length(km$strata)){axis(1, at = xticks, labels = n.atrisk[i,], line=3+i, tick = FALSE)} for (i in 1:length(km$strata)){mtext(legend[i], at=-(xticks[2]-xticks[1])/2, side=1, line=4+i, cex=1)} title(xlab = "Number at risk", line = 3.5, adj = 0) legend ("topright", legend, col=1:32, lty=1, lwd=1, box.lty=0, title="agec")
そうすると以下のように、Y軸方向にグラフが伸びて、凡例とグラフの線が重ならなくなった。
しかしながら、やはりこれは無理やり感が否めないので、左下へ移動することをおすすめする。
まとめ
統計ソフトEZRでグラフの凡例の位置を調整する方法、2つを紹介した。
一つは、legend()内の"topright"を"bottomleft"に変更する方法。
もう一つは、plot()内に、ylim=c()を加えて、Y軸を上に延ばす方法。
Y軸の値に上限値がある場合は、legend()で位置を変えるのが良いと思う。
Y軸の値に上限値がない場合は、ylim=c()で調整するのもよいと思う。
EZR公式マニュアル
EZR開発者執筆の公式マニュアル。きちんと使い方を学びたい方はぜひ。