xlim
と が使えると思いますylim
。また、 のexpand
引数を見てください?biplot
。残念ながら、あなたはデータを提供していないので、いくつかのサンプルデータを取りましょう:
a <- princomp(USArrests)
呼び出した結果の下biplot
:
biplot(a)
そして今、「ズームイン」して「殺人」と「レイプ」を詳しく見ることができます と のスケーリング引数も使用しxlim
ます:ylim
expand
?biplot
biplot(a, expand=10, xlim=c(-0.30, 0.0), ylim=c(-0.1, 0.1))
expand
係数により、上軸と右軸のスケーリングが異なることに注意してください。
これは、プロットを読みやすくするのに役立ちますか?
編集
また、ラベルと矢印に異なる色を使用できるかどうかも尋ねました。biplot
はこれをサポートしていません。できることは、 のコードをコピーしstats:::biplot.default
て、必要に応じて変更することです (とが使用されている場合はcol
引数を変更します)。plot
axis
text
または、バイプロットに使用できますggplot
。ここの投稿では、単純なバイプロット関数が実装されています。次のようにコードを変更できます。
PCbiplot <- function(PC, x="PC1", y="PC2", colors=c('black', 'black', 'red', 'red')) {
# PC being a prcomp object
data <- data.frame(obsnames=row.names(PC$x), PC$x)
plot <- ggplot(data, aes_string(x=x, y=y)) + geom_text(alpha=.4, size=3, aes(label=obsnames), color=colors[1])
plot <- plot + geom_hline(aes(0), size=.2) + geom_vline(aes(0), size=.2, color=colors[2])
datapc <- data.frame(varnames=rownames(PC$rotation), PC$rotation)
mult <- min(
(max(data[,y]) - min(data[,y])/(max(datapc[,y])-min(datapc[,y]))),
(max(data[,x]) - min(data[,x])/(max(datapc[,x])-min(datapc[,x])))
)
datapc <- transform(datapc,
v1 = .7 * mult * (get(x)),
v2 = .7 * mult * (get(y))
)
plot <- plot + coord_equal() + geom_text(data=datapc, aes(x=v1, y=v2, label=varnames), size = 5, vjust=1, color=colors[3])
plot <- plot + geom_segment(data=datapc, aes(x=0, y=0, xend=v1, yend=v2), arrow=arrow(length=unit(0.2,"cm")), alpha=0.75, color=colors[4])
plot
}
次のようにプロットします。
fit <- prcomp(USArrests, scale=T)
PCbiplot(fit, colors=c("black", "black", "red", "yellow"))
xlim
この関数を少しいじってみると、設定方法やylim
値などを理解できると思います。