我正在尝试更改ggplot2中的构面标签。我找到了this solution
但它不适合我。这是我正在使用的代码
facets <- c("1", "2", "3", "4", "5")
names <- list(
'1'="one",
'2'="two",
'3'="three",
'4'="four",
'5'="five"
)
name_labeller <- function(variable,value){
return(names[value])
}
ggplot(Data[Data$Names %in% facets,], aes(y = y, x = x, group = Names)) +
geom_point(shape = 21, size=3, aes(fill=Part)) +
scale_fill_manual(values=c("gray90","gray40")) +
geom_smooth(method="lm", se= FALSE, size = 1, aes(color = Part, group = Part)) +
scale_color_manual(values=c("black","black")) +
geom_smooth(method = 'lm', size = 1, colour = 'red', se = FALSE) +
scale_x_log10() +
scale_y_log10() +
theme_bw() +
facet_grid(Names ~ ., labeller=name_labeller)
当我运行时,图中的方面读取“一”“三”“四”“[空]”和“[空]”(即最后两个方面未标记),而不是“一” “两个”“三个”“四个”和“五个”。此外,它将“三”分配给方面2,将“四”分配给方面三。
注意:如果我更改列表“名称”中项目的顺序,则会影响标记的构面。似乎name_labeller
没有返回正确的单词存在问题,或labeller-name_labeller
没有要求正确的内容?
上面链接的这个解决方案是从2010年开始,也许ggplot2从那时起发生了变化?有谁知道如何更改此剧情中的方面标签?
非常感谢!
编辑:另外,如果可能,我想以斜体显示文字,例如“一个”“两个”“三个”“四个”“五个” 。一旦我真正改变了方面,我就会解决这个问题,但如果有人知道,我会很感激!
答案 0 :(得分:0)
好的,我发现了这个问题。我的数据框中有一个名为Part
的分组变量,对于我的绘图中未包含的其他一些数据,这个值为空值(这些是Data$Names
的其他值,这些值未包含在我的数据库中列表名为facets
)。出于某种原因,即使我没有绘制这些数据,空值也会影响切面。我在我的数据中填写了这些空值,上面的代码现在完美无缺。
感谢Didzis和Joran的评论,这促使我继续工作直到得到答案。