とにかくプロットにテーブルを追加することはありますか?以下のプロットがあるとします。
curve(dnorm, -3, +4)
今、私はプロットの下に行列を追加するのが好きです:
testMat <- matrix(1:20, ncol = 5)
私の目標?プロットを作成するだけでなく、プロットの下に関心のある情報を含む行列も表示するプロット関数を作成しています。
添付の写真を見て、私が何を意味するかを確認してください。本当にありがとうございました。
これを行うにはおそらくより良い方法がありますが、1つのオプションは、「gplots」パッケージのように、行列とデータフレームを「プロット」するパッケージの1つを使用することです。
これは非常に簡単な例です(最終的なレイアウトをより細かく制御するために、おそらくこれをカスタマイズできます)。
# Some sample data
testMat <- matrix(1:20, ncol = 5)
testMatDF <- as.data.frame(testMat)
names(testMatDF) <- c("Hey there", "Column 2",
"Some * Symbols", "And ^ More",
"Final Column")
rownames(testMatDF) <- paste("Group", 1:4)
# Load the package
library(gplots)
# Set par for plotting a three-row plot
par(mfrow = c(3, 1))
curve(dnorm, -3, +4)
textplot(testMat)
textplot(testMatDF)
結果:
プロットの配置をもう少しクリエイティブにしたい場合は、layout()
代わりにを使用することもできます。par(mfrow...)
例えば:
layout(matrix(c(1, 1, 2, 3, 3, 3),
2, 3, byrow = TRUE))
curve(dnorm, -3, +4)
textplot(testMat)
textplot(testMatDF)
パッケージplotrix
は機能を提供しますaddtable2plot
。
ヘルプファイルの例:
library(plotrix)
testdf<-data.frame(Before=c(10,7,5),During=c(8,6,2),After=c(5,3,4))
rownames(testdf)<-c("Red","Green","Blue")
barp(testdf,main="Test addtable2plot",ylab="Value",
names.arg=colnames(testdf),col=2:4)
# show most of the options
addtable2plot(2,8,testdf,bty="o",display.rownames=TRUE,hlines=TRUE,
title="The table")
編集: テーブルを新しいプロットに配置して、プロットの下に配置します。
library(plotrix)
layout(matrix(c(1,2), 2, 1, byrow = TRUE),
widths=c(1,1), heights=c(2,1))
testdf<-data.frame(Before=c(10,7,5),During=c(8,6,2),After=c(5,3,4))
rownames(testdf)<-c("Red","Green","Blue")
barp(testdf,main="Test addtable2plot",ylab="Value",
names.arg=colnames(testdf),col=2:4)
plot.new()
addtable2plot(0,0,testdf,bty="o",display.rownames=TRUE,hlines=TRUE,
title="The table")