我将尝试复制ggplot对象,然后更改新复制对象的某些属性,例如将颜色线条更改为红色。
假设这段代码:
然后,如果我改变变量
我希望能够有两个不同属性的对象
你知道这是怎么回事吗?ggplot对象是否以不同的方式处理?
谢谢!
假设这段代码:
df = data.frame(cbind(x=1:10, y=1:10))
a = ggplot(df, aes(x=x, y=y)) + geom_line()
b = a
然后,如果我改变变量
a
的线条颜色。a$layers[[1]]$geom_params$colour = "red"
它还改变了b
的颜色。
> b$layers[[1]]$geom_params$colour
[1] "red" # why it is not "black"?
我希望能够有两个不同属性的对象
a
和b
。为了正确地实现这一点,我需要再次调用绘图命令,并使用b = ggplot(df, aes(xy, y=z)) + geom_line()
来绘制b
的图形。然而,在算法的这个阶段,没有办法知道绘图命令ggplot(df, aes(x=x, y=y)) + geom_line()
的内容。你知道这是怎么回事吗?ggplot对象是否以不同的方式处理?
谢谢!
str(a)
,你会注意到这些层是原型对象,所以这很可能解释了为什么你会看到这种行为。 - joran