回答:
plotmatrixを試してみてください:
library(ggplot2)
data(mtcars)
plotmatrix(mtcars[,1:3])
私にとっては、mpg(mtcarsの最初の列)は重要ではありません。確認はしていませんが、確認する必要はありません。ただし、散布図が表示されます。
注:今後の参考のために、@ naught101がこの質問に対する別の応答で示唆しplotmatrix()
ているように、ggpairs()
関数はGGally
パッケージの関数に置き換えられました。
plotmatrix()
ているように、ggpairs()
関数はGGally
パッケージの関数に置き換えられました。
私はこれをやり続けたいのですが、plotmatrixはがらくたです。ハドレーは推奨しています使用してGGallyパッケージを代わりに。これには、大幅に改善されたペアプロットである関数ggpairsがあります(データフレームで非連続変数を使用できます)。変数のタイプに応じて、各正方形に異なるプロットをプロットします。
library(GGally)
ggpairs(iris, aes(colour = Species, alpha = 0.4))
colour
変数は要素でなければならないことに注意してください。それを理解するために45分を費やしました。
melt
関心のある変数をid変数として使用してデータフレームを作成し、他の変数でファセットすることができます。
ggplot(data, aes(x=id, y=value)) + geom_point() + facet_grid(.~variable)
。私があなたが「相関プロット」と言うとき、私はあなたが散布図について話していると思います。
GGally::ggpairs(iris, aes(colour = Species, alpha=0.4))
(の場合とは異なり)ggplot
オブジェクトを取得したいggmatrix
場合のggpairs()
解決策は、データを2回溶融してからggplot
ファセット処理を行うことです。パラメータが指定されている場合、プロット領域を制限するfacet_wrap
よりも優れfacet_grid
ていscales = 'free'
ます。
require(ggplot2)
require(dplyr)
require(tidyr)
gatherpairs <- function(data, ...,
xkey = '.xkey', xvalue = '.xvalue',
ykey = '.ykey', yvalue = '.yvalue',
na.rm = FALSE, convert = FALSE, factor_key = FALSE) {
vars <- quos(...)
xkey <- enquo(xkey)
xvalue <- enquo(xvalue)
ykey <- enquo(ykey)
yvalue <- enquo(yvalue)
data %>% {
cbind(gather(., key = !!xkey, value = !!xvalue, !!!vars,
na.rm = na.rm, convert = convert, factor_key = factor_key),
select(., !!!vars))
} %>% gather(., key = !!ykey, value = !!yvalue, !!!vars,
na.rm = na.rm, convert = convert, factor_key = factor_key)
}
iris %>%
gatherpairs(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% {
ggplot(., aes(x = .xvalue, y = .yvalue, color = Species)) +
geom_point() +
geom_smooth(method = 'lm') +
facet_wrap(.xkey ~ .ykey, ncol = length(unique(.$.ykey)), scales = 'free', labeller = label_both) +
scale_color_brewer(type = 'qual')
}