2

qplot(プロットされた値に基づいて)ベクトルを使用してaのポイントのアルファ値を設定したいと思います。

library(ggplot2)
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
alpha = rep(.8,nrow(dsamp)); alpha[dsamp$clarity=="I1"] <- 1
qplot(carat, price, data=dsamp, colour=clarity,size=I(4),alpha=alpha)

上記のようにコードを実行すると、次のようなアルファベクトルを作成しても違いはありません。

alpha = rep(.1,nrow(dsamp)); alpha[dsamp$clarity=="I1"] <- 1

dsamp$clarity!="I1"上記の両方のコードのように、ポイントの透明度を少し低くしたいと思います。どうすればこれを達成できますか?

4

1 に答える 1

2

を使用ggplot()してマップalphaclarityます。alpha次に、因子の各レベルに必要な値を手動で設定できます。

levels(dsamp$clarity)
[1] "I1"   "SI2"  "SI1"  "VS2"  "VS1"  "VVS2" "VVS1" "IF"
alpha <- c(1, rep(0.25, times=(length(levels(dsamp$clarity))-1)))
names(alpha) <- levels(dsamp$clarity)
alpha
  I1  SI2  SI1  VS2  VS1 VVS2 VVS1   IF 
 0.5  1.0  1.0  1.0  1.0  1.0  1.0  1.0

その後、次のことができます。

ggplot(dsamp, aes(carat, price)) + geom_point(aes(alpha=clarity, colour=clarity), size=I(4)) +
  scale_alpha_manual(values=alpha)

私が知る限り、あなたが望むものをあなたに与えます。I1を作成するときに、明らかに異なるレベルを設定できますalpha

于 2013-03-06T20:37:36.193 に答える