(我将使用 gcookbook
库中的 mtcars
数据框。)
假设我生成了以下图:
p <- (ggplot(mtcars, aes (col = factor(cyl), x = wt, y = disp))
+ geom_point (shape = 19)
+ geom_text (aes(y=disp+0.1,label=hp), size = 2.5, vjust=0)
+ stat_smooth(method=lm))
plot(p)
我是否可以更改,例如,x
或 y
或 col
,而无需返回并编辑原始内容?
例如,假设我想将 x
更改为 mpg
,将 col
更改为 gear
。我想运行类似的东西,
p + ggplot(aes=aes (col = factor(gear), x = mpg))
plot(p)
但是第一个命令给出了错误:
Error: Don't know how to add o to a plot
是否有任何方法可以更改图中使用的列,而无需返回并编辑原始命令?
最佳答案
要更改情节的整体美感,您可以执行以下操作:
p + aes(color = factor(gear), x = mpg)
要更改特定图层的美观,您可以通过分配新变量来手动更改对象p
。不过,这看起来很脆弱。
要更改示例中 geom_text
图层的美观映射:
p$layers[[2]]$mapping$label = mtcars$wt
p$layers[[2]]$mapping$y = mtcars$disp + 2
关于r - 更改 x/y 列而不编辑原始 ggplot 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40874389/