それはあなた自身の並列はあなたに美学をカスタマイズするための柔軟性を提供しますggplot2のプロットを、座標ロールバックすることは難しいことではありません。以下は、組み込みのdiamonds
データフレームを使用したイラストです。
パラレル座標を取得するには、ID
列を追加する必要があります。これにより、データフレームの各行を識別できるようになります。これは、ggplotでgroup
として使用します。数字をscale
にする必要があります。プロットするときに、すべて同じ縦軸になるようにしてください。次に、x軸上で必要なすべての列を取得し、それらを「長い」形式に変更する必要があります。 tidyverse/dplyr
配管オペレータを使用して、下のすべての作業を行っています。
カテゴリの組み合わせの数を制限した後でも、このプロットが簡単に解釈可能になるには線が絡み合っている可能性が高いため、単にこれを「概念の証明」と見なしてください。うまくいけば、あなたはあなたのデータでより有用なものを作ることができます。私はcolour
(行の場合)とfill
(ポイントの場合)の美学を以下に使用しました。代わりに、shape
またはlinetype
を使用することができます。
library(tidyverse)
theme_set(theme_classic())
# Get 20 random rows from the diamonds data frame after limiting
# to two levels each of cut and color
set.seed(2)
ds = diamonds %>%
filter(color %in% c("D","J"), cut %in% c("Good", "Premium")) %>%
sample_n(20)
ggplot(ds %>%
mutate(ID = 1:n()) %>% # Add ID for each row
mutate_if(is.numeric, scale) %>% # Scale numeric columns
gather(key, value, c(1,5:10)), # Reshape to "long" format
aes(key, value, group=ID, colour=color, fill=cut)) +
geom_line() +
geom_point(size=2, shape=21, colour="grey50") +
scale_fill_manual(values=c("black","white"))
私は前ggparcoords
を使用していないが、(少なくとも機能との私の最初の試行で)簡単なように見えた唯一のオプションは一緒に2つのデータ列を貼り付けました。以下は例です。でも、わずか4カテゴリの組み合わせで、プロットは紛らわしいですが、あなたのデータに強いパターンがある場合、多分それは解釈されます:それが示すようにあなたが投稿何
library(GGally)
ds$group = with(ds, paste(cut, color, sep="-"))
ggparcoord(ds, columns=c(1, 5:10), groupColumn=11) +
theme(panel.grid.major.x=element_line(colour="grey70"))
が答えよりも進歩しているが、標準化された範囲ではなく各座標の範囲... – Chris