如何更改 ggplot2 中图例的标题?

机器算法验证 r 数据可视化 ggplot2
2022-02-03 05:28:14

我在 ggplot2 中制作了一个图来总结来自 2 x 4 x 3 单元数据集的数据。我已经能够使用 2 级变量制作面板,facet_grid(. ~ Age)并使用aes(x=4leveledVariable, y=DV). aes(group=3leveledvariable, lty=3leveledvariable)到目前为止,我曾经制作过这个情节。这给了我一个由 2 级变量组成的可视化,X 轴代表 4 级变量,并且在面板内为 3 级变量绘制了不同的线。但是 3-leveled 变量的键以 3-leveled 变量的名称命名,我希望它是一个包含字符空间的标题。如何重命名图例的标题?

我尝试过的东西似乎不起作用(abp我的 ggplot2 对象在哪里):

 abp <- abp + opts(legend.title="Town Name")
 abp <- abp + scale_fill_continuous("Town Name")
 abp <- abp + opts(group="Town Name")
 abp <- abp + opts(legend.title="Town Name")

示例数据:

ex.data <- data.frame(DV=rnorm(2*4*3), V2=rep(1:2,each=4*3), V4=rep(1:4,each=3), V3=1:3)
2个回答

您可以通过修改图例的比例来更改图例的标题。这是使用 CO2 数据集的示例

library(ggplot2)

p <- qplot(conc, uptake, data = CO2, colour = Type) + scale_colour_discrete(name = "Fancy Title")
p <- p + facet_grid(. ~ Treatment)
p 

编辑:

使用上面的示例数据,这是一个可行的解决方案。我认为这模仿了@drknexus 试图创造的情节。作为旁注,如果有人能解释为什么我们必须将 V3 视为一个因素以便将其映射到图例,我将不胜感激。

p <- qplot(V4, DV, data = ex.data, geom = "line", group = V3, lty = factor(V3)) 
p <- p + scale_linetype_discrete(name = "Fancy Title") + facet_grid(. ~ V2)
p 

替代文字

另一种选择是使用

p + labs(aesthetic='custom text')     

例如,Chase 的示例如下所示:

library(ggplot2)

ex.data <- data.frame(DV=rnorm(2*4*3),V2=rep(1:2,each=4*3),V4=rep(1:4,each=3),V3=1:3)
p <- qplot(V4, DV, data=ex.data, geom="line", group=V3, linetype=factor(V3)) + facet_grid(. ~ V2)
p + labs(linetype='custom title')

并产生数字: 在此处输入图像描述