まず、いくつかの再現性のあるデータ:、
toPlotHalf <-
melt(out) %>%
mutate_each(funs(factor(.))
, starts_with("Var")) %>%
filter(as.numeric(Var1) < as.numeric(Var2))
ggplot(toPlotHalf
, aes(Var1, Var2)) +
geom_point(aes(size = value), colour = "black") +
theme_bw() + xlab("") + ylab("") +
scale_size_continuous(range=c(2,10))
注:ここでは
mat <-
data.frame(
malA = sample(0:1, 100, TRUE, c(0.2,0.8))
, malB = sample(0:1, 100, TRUE, c(0.3,0.7))
, malC = sample(0:1, 100, TRUE, c(0.4,0.6))
, malD = sample(0:1, 100, TRUE, c(0.5,0.5))
)
out <- crossprod(as.matrix(mat))
diag(out) <- 0
あなたがdplyr
を使用することに興味を持っているだけで半分にまで限定的な例でありますしかし、この方法では、あなたのプロットは非常に一般的な特定の病気によって支配されることになります。のみ含まれるようにしてデータ
toPlot <-
prop.table(out, 1) %>%
melt() %>%
filter(value > 0)
ggplot(toPlot
, aes(Var1, Var2)) +
geom_point(aes(size = value), colour = "black") +
theme_bw() + xlab("") + ylab("") +
scale_size_continuous(range=c(2,10))
サブセット:別の方法として、あなたは今、相互のポイントは必ずしもない(している(注)同じサイズの他の病気を持っているそれぞれの病気を持つ人々の割合を提示することができます – Gregor
あなたはそれが誤解を招く理由は何ですか?あなたがリンクした元のプロットに類似した何かをして、それをパーセント表示するようにすることが1つの方法であるとすれば、(A、B) (B、A)のドットとは大きさと意味が異なる(AとBの比率、AとBの比率、またはその逆) –
誤解は正しい言葉ではないかもしれません。読者が両方の半分の数字を理解することは困難でした。私はデータをサブセット化しようとします。ありがとう! –