我有一个固定的ggplot对象(来自我不想触摸的一个不错的函数)。但是,我想在之后添加一些颜色,从而添加新数据。那怎么可能?
这是一个简单的例子。
gg <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()
现在,我希望对象gg由Petal.Length着色。像(但那不起作用)之类的东西
gg_colored <- gg + aes(col=Petal.Length)
获得:
答案 0 :(得分:1)
解决方案是使用aes_string或aes_()以编程方式处理美学的方式。
可以使用
平均生成图data(iris)
gg <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, col=Petal.Length)) +
geom_point()
gg
或
data(iris)
gg <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width))
gg_colored <- gg + geom_point(aes_string(col="Petal.Length"))
gg_colored
答案 1 :(得分:0)
借助paoloeusebi的答案,我还找到了一种方法来添加新的着色变量(而不是虹膜内部的Petal.Length)
mydat <- gg$data
mydat$col <- rep(LETTERS[1:3], each=50)
gg_colored <- gg + geom_point(data=mydat, aes_string(col="col"))