ggplot2学习笔记(一)
1、平滑时的分组问题
对比如下量代码与绘图结果
ggplot(diamonds) + geom_point(aes(x=carat, y=price,color=cut)) + geom_smooth(aes(x=carat, y=price, color=cut))
ggplot(diamonds) + geom_point(aes(x=carat, y=price, color=cut)) + geom_smooth(aes(x=carat, y=price))
其区别在于前者在指定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")
可改变的参数有size
、face
、 colour
、 angle
。
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_wrap
和facet_grid
。用法示例如下:
gg1 + facet_wrap(color ~ cut)
gg1 + facet_grid(color ~ cut)
在facet_grid(formula)
中,若formula
为.~variable
,则按水平方向并列排布;若为variable.~
,则按竖直方向堆叠。
对于facet_wrap()
与facet_grid()
两者的区别,我的理解是
-
facet_grid()
即使在某张分面中没有数据时也会显示为一个块,而facet_wrap()
则会忽略这一分面 -
facet_grid()
的显示更为规则,便于直观比较
对分面的标题样式可进行修改,参见这里