我想從數據框中的兩個序列'Pos'和'Neg'(y值)產生一個圖。 x值在'平均值'列中。我希望系列具有不同的顏色。使用aes_string時ggplot2中的兩個geom_point()的顏色
搜索stackoverflow給了我一個類似的問題:change color for two geom_point() in ggplot2,但我想使用aes_string爲了避免在檢查包時的注意事項。
我得到它使用aes和'自動'的顏色,如下面的第一個例子。但是,我無法弄清楚如何使用aes_string生成相同的繪圖,並且仍然讓ggplot決定顏色。我覺得這應該是一個簡單的事情......
重複的例子:
exData <- data.frame(Marker = rep("TH01", 10),
Mean = seq(1:10),
Neg = -1*runif(10,0.1,1),
Pos = runif(10,0.1,1))
# Produce the correct plot, with 'automatic' colours.
gp <- ggplot(exData, aes_string(x="Mean"),
shape=val_shape, alpha=val_alpha)
gp <- gp + geom_point(aes(y=Pos, colour="Max"))
gp <- gp + geom_point(aes(y=Neg, colour="Min"))
gp <- gp + scale_colour_discrete(name = "Legend")
print(gp)
# Produce the correct plot, but not with 'automatic' colours.
gp <- ggplot(exData, aes_string(x="Mean"),
shape=val_shape, alpha=val_alpha)
gp <- gp + geom_point(aes_string(y="Pos"), colour=1)
gp <- gp + geom_point(aes_string(y="Neg"), colour=2)
gp <- gp + scale_colour_discrete(name = "Legend")
print(gp)
對不起,做了最後一項改動,但忘了一個......現在修復了。 –