p値とORの2量のプロット

先週は日本リウマチ学会でした。学会のプレゼンスライド(論文の図)で、位置別p値プロットをするのに、そのORの値の大小で色を付けている(OR<1.5は青、1.5<=OR<2 は黄色、2<=ORは赤、のような感じ)のがありました。

p値は、「関連があることの保証の程度」
ORは、「関連の強度」ですので、異なる情報なので、異なる情報は異なるように表示したい、と。

そのうえで、なるだけ、手間をかけずに・・・。

色の代わりにプロットのサイズの大小を変えるのもありました(本当の意味ではちょっと違うのですが、まあ、意味合いとしては、縦軸で表現している値と、プロットに与える属性とで2種類の情報を平面図に表しているもので、その属性に、「色」と「サイズ」がありえた、と、こういうわけです)。

たとえば、
ORandP2.txt にデータがあって、

第1カラムにOR、第2カラムのp値があったときに

data<-read.table(file="ORandP2.txt")
or<-data$V1
p<-data$V2
#位置情報は、サンプルなのでいい加減に入れました。
loc<-seq(1:length(p))
#色の与え方は、データの最小p値を真っ赤、与えた範囲の最大p値を真っ白で、グラデーションをとらせてみますと

redcolor<-rgb(red=1,(log(max(or))-log(or))/(log(max(or))-log(min(or))),
(log(max(or))-log(or))/(log(max(or))-log(min(or))))

plot(loc,-log(p),col=redcolor,pch=19)

としてやって描けたのが、掲載図。

rgb で色グラデーションをするのはこんな感じです。