ggplot2学习笔记(一)

时间:2021-06-02 03:44:55

ggplot2学习笔记(一)

该部分笔记整理于这里

1、平滑时的分组问题

对比如下量代码与绘图结果

 ggplot(diamonds) + geom_point(aes(x=carat, y=price,color=cut)) + geom_smooth(aes(x=carat, y=price, color=cut))

ggplot2学习笔记(一)

ggplot(diamonds) + geom_point(aes(x=carat, y=price, color=cut)) + geom_smooth(aes(x=carat, y=price))

ggplot2学习笔记(一)
其区别在于前者在指定geom_smooth中的aes加入了语句color=cut。即在未指定分组要素时,默认按整体数据做平滑。


QUESTION:

  • 平滑方法的选择原则

2、图表标题及X、Y轴标题的设定及参数修改

想要改变图表标题及X、Y轴标题如下:

ggplot(diamonds, aes(x=carat, y=price, color=cut)) + geom_point() + labs(title="Scatterplot", x="Carat", y="Price")

想要改变标题的样式如下:

gg1 <- gg + theme(plot.title=element_text(size=30, face="bold"), 
                  axis.text.x=element_text(size=15), 
                  axis.text.y=element_text(size=15),
                  axis.title.x=element_text(size=25),
                  axis.title.y=element_text(size=25)) + 
  scale_color_discrete(name="Cut of diamonds") 

可改变的参数有sizefacecolourangle
QUESTION:

  • 标题在图标中的位置是否可修改
  • 坐标轴标题是否可以取消

3、为图例添加标题

对于前述两图表来说,由于图例展示划分是基于颜色colour的,故用scale_color_discrete(name="legend title")
若图例基于形状,则要用

scale_shape_discrete(name="legend title")
#or
scale_shape_continuous(name="legend title")

类似的,若图例基于填充fill,则为

scale_fill_continuous(name="legend title")

可通过设置theme(legend.position="XXX")来调整图例的位置

4、分面

分面的函数:facet_wrapfacet_grid。用法示例如下:

gg1 + facet_wrap(color ~ cut)

ggplot2学习笔记(一)

gg1 + facet_grid(color ~ cut)

ggplot2学习笔记(一)
facet_grid(formula)中,若formula.~variable,则按水平方向并列排布;若为variable.~,则按竖直方向堆叠。

对于facet_wrap()facet_grid()两者的区别,我的理解是

  • facet_grid()即使在某张分面中没有数据时也会显示为一个块,而facet_wrap()则会忽略这一分面
  • facet_grid()的显示更为规则,便于直观比较

对分面的标题样式可进行修改,参见这里