統計ER

統計ソフトRの使い方を中心に、統計解析方法の解説をするブログ。ありそうでなかなか見つからないサンプルサイズ計算などニッチな方法について紹介しています。

EZRで描いたカプランマイヤー曲線の横軸を変更したい

Toukei Consul Banner

KH Coder Consul Banner

EZRでカプランマイヤー曲線は描けたのだが、横軸(時間軸、X軸)を調整したい。

どうやれば、変更できるか?

EZRでカプランマイヤー曲線を描いているスクリプト部分を特定する

EZRで生存期間解析、ログランク検定からカプランマイヤー曲線を描く。

EZRでカプランマイヤー曲線を描く方法がわからない場合は、以下の動画を参照。

youtu.be

Rスクリプト窓に自動的に出力される以下の部分を見つける。

このスクリプト部分がカプランマイヤー曲線を描いている部分。

plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, 
  xlab="Months", 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="Anthracyclines")

上記スクリプトで描かれるカプランマイヤー曲線はこのように横軸は10か月ごとになる。

f:id:toukeier:20211016103434p:plain
標準で描かれるカプランマイヤー曲線(日を月単位に変換している)

EZRで描いたカプランマイヤー曲線の横軸を変更するには?

EZRで描いたカプランマイヤー曲線の横軸を変更するには、スクリプト中の先頭の二つ plot() と xticks を修正する。

例えば、このデータは最長72か月程度なので、72か月を24区分して、3か月ごとの区切りを作る。

まず、plot()の中に、xaxp=c(0,72,24)と書き入れる。

これは、X軸の目盛りを0から72の間を24等分する指示になる。

また、xticks <- c(0:24)*3 として、xticksを変更する。

これは、0から72まで、公差3の等差数列を作ってそれをNumber at riskの区切りにするという指示。

それ以外の部分は、自動で生成されたもののままにする。

plot(km, bty="l", col=1:32, lty=1, lwd=1, conf.int=FALSE, mark.time=TRUE, 
  xlab="Months", ylab="Probability", xaxp=c(0,72,24))
xticks <- c(0:24)*3
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="Anthracyclines")

上記スクリプトで描かれるカプランマイヤー曲線は以下のようになる。表示された後、少しだけ左右の幅を広げている。

f:id:toukeier:20211016103715p:plain
横軸を3か月ごとの目盛に変更したカプランマイヤー曲線

この方法を応用すれば、希望の目盛りに変更することができるはずだ。

まとめ

EZRでカプランマイヤー曲線を描いたのだが、横軸の目盛りを変更したい場合がある。

そのときにxaxp=c()の追加とxticksの変更で、調整が実現できることを示した。

EZR公式マニュアル

EZRを使えるようになりたいなら、ぜひ。