在ggplot2中添加图例标题和主标题

10

嗨,我正在尝试使用ggplot2完成以下任务:

1)将图例名称更改为“资产” 2)在顶部添加标题 3)将每个面板的边框更改为更坚实的深色线条 4)想要更改每个面板图表标题的名称和颜色,例如“公司”等

这是我现在的代码,但我不知道该如何完成。非常感谢帮助。

p <- ggplot(mystratcodes, aes(x=annRisk, y = annRet))
p<- p + facet_grid(. ~ sector) + facet_wrap(~sector)
p<- p + geom_point(size=6, aes(color = (mystratcodes$subsector1))) 
p<-p+scale_x_continuous(labels = percent, name = "Annualized Risk")
p<-p+scale_y_continuous(labels = percent, name = "Annualized Return")
p<-p+ theme( legend.position = "bottom", legend.key = element_rect(colour = "grey"))
p<-p + scale_colour_manual(values = c("UTIL" = "#fdcc8a", "IND" = "#fc8d59", "FIN" =          "#d7301f","ABS" = "#74a9cf", "CMBS" = "#0570b0", "LA" = "#8c96c6", "SOV"= "#88419d", "SUPRA" = "#b3cde3"))
print(p)

非常感谢


更新:对于那些发现标签=百分比在新的ggplot中无法使用的人,即如果您看到“Error in check_breaks_labels(breaks, labels):object 'percent' not found”错误,则在百分比前面添加此scales::scales::percent - micstr
1个回答

16

1)通过将“Asset”放在scale_color_manual函数的第一个参数位置,可以将图例名称更改为“Asset”。

scale_colour_manual("Asset",values = ...)

2) 您可以做

p<-p+labs(title="PUT TITLE HERE")

标题

3) 您可以向 theme() 添加一个额外的参数以更改背景颜色(这将在方框周围形成边框)。

p<-p+theme(panel.background = element_rect(fill=NA, col="black"))

来源:如何在网格线之间放置分割线

你还可以尝试在表达式中早些时候添加p=p+theme_bw(),但这可能会改变太多东西。

4)对于网格标签,您有两个选择(嗯,更多,但这些是最简单的)。首先,您可以重命名数据的级别。如果您不想这样做,可以创建一个labeller函数作为facet_grid()中的参数传递。请参见此处的示例:

https://dev59.com/7nA75IYBdhLWcg3wGlAa#12104207

对于面板的颜色,您也可以使用theme()

p<-p+theme(strip.background = element_rect(fill = 'purple'))#turns boxes purple

非常感谢您的帮助。我还有一个问题。如何根据名为capwt的列调整点的大小。我想要三种大小,分别是大于10%,5-10%和小于5%。非常感谢您的帮助。 - qfd
你可以使用 aes(...,size=colvariable)scale_size_identity(values=c(colvariable=1.1*a,varother1=a,varother2=a,...) - Max Candocia
您还可以使用两个单独的geom_point表达式,其中您使用参数subset=(mystratcodes$sector=='capwt')subset=(mystratcodes$sector!='capwt')更多详情请参见:http://mikewhitfield.wordpress.com/2013/11/07/r-graphics-vary-geoms-facets/ - Max Candocia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接