EZRでカプランマイヤー曲線を書いた後に、横軸を調整する方法
EZRでカプランマイヤー曲線を描いているスクリプト部分を特定する
EZRで生存期間解析、ログランク検定からカプランマイヤー曲線を描く。
EZRでカプランマイヤー曲線を描く方法は、以下の動画を参照。
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か月ごとになる。
EZRで描いたカプランマイヤー曲線の横軸を変更するには?
EZRで描いたカプランマイヤー曲線の横軸を変更するには、スクリプト中の先頭の二つ plot() と xticks を修正する。
例えば、このデータは最長72か月程度なので、72か月を24区分して、3か月ごとの区切りを作る。
まず、plot()の中に、xaxp=c(0,72,24)
と書き入れる。
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))
これは、X軸の目盛りを0から72の間を24等分する指示になる。
また、xticks <- c(0:24)*3
として、xticksを変更する。
xticks <- c(0:24)*3
n.atrisk <- nrisk(km, 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")
上記スクリプトで描かれるカプランマイヤー曲線は以下のようになる。表示された後、少しだけ左右の幅を広げている。
横軸を3か月ごとの目盛に変更したカプランマイヤー曲線
この方法を応用すれば、希望の目盛りに変更することができるはずだ。
まとめ
EZRでカプランマイヤー曲線を描いた後、横軸の目盛りを変更したい場合がある。
そのときに xaxp=c() の追加と xticks の変更で、調整が実現できる。
コメント
コメント一覧 (3件)
非常に重要な情報をありがとうございます。とても参考になりました
例の図で言う、Anthracyclineの下の0/1はまさに、No antra、Anthra+を指していると思われますが、Scriptのどこが該当するのでしょうか?あとでパワーポイントで整形しているのですが、最初から直せたら便利です。ご存知でしょうか?
コメントありがとうございます!お答えについて動画にまとめました → https://youtube.com/live/FiJhnqGTdPc「Anthracyclines の下の」と言われているのに、グラフの下の数字と思い込んでいるところが、誤解していましたが、結果的に、ご質問にお答えするような形になっていますので、参考にしていただければと思います。
ご丁寧に解説いただき誠にありがとうございます。本記事と今回追加いただいた解説を合わせるとほとんど修正不要で発表・論文等にも使えそうです。重ねてお礼申し上げます。