首页 > > > R语言可视化——散点图及其美化技巧!
今天开始跟大家分享散点图及其美化技巧!
R语言中的散点图需要两个数值型变量分别作为X轴、Y轴映射对象,同时通过颜色、大小、形状进行分类变量映射。
由于散点图在数据量较多的情况下效果更佳,这里使用ggplot包内自带的数据集diamonds进行案例演示。

ggplot(diamonds,aes(carat,price))+geom_point()
在R中制作散点图的基本语法如上,数据集、X轴、Y轴,最后是散点图图层。
以上散点图是最简单的不加任何修饰的默认图形,通过在aes映射中添加分类变量,以大小、颜色、形状进行区分,就可以制作出多系列散点图。
散点图(形状分类)
ggplot(diamonds,aes(carat,price))+geom_point(aes(shape=cut))
散点图(颜色分类)
ggplot(diamonds,aes(carat,price))+geom_point(aes(colour=cut))
散点图(大小分类)
ggplot(diamonds,aes(carat,price))+geom_point(aes(size=cut))
也可以同时在一个函数语句中加入两个以上的分类指标参数。
ggplot(diamonds,aes(carat,price))+geom_point(aes(colour=cut,size=table))
由于该数据集记录较多,所以数据点相互重合,很多区域很难辨识,R语言中提供了两种处理方式:
使用alpha参数(透明化处理):
ggplot(diamonds,aes(carat,price))+geom_point(alpha = 1/10)
使用像素级散点图:
ggplot(diamonds,aes(carat,price))+geom_point(shape=".")
由于散点图可以通过添加size参数用来展示某一指标在散点上的大小,所以基本也不需要单独的气泡图函数。
以上散点图都没有考虑过美化的问题;这里通过添加主题、颜色模板可以将其美化:
ggplot(diamonds,aes(carat,price))+
geom_point(aes(colour=cut))+
ggtitle("Scatter Plot")+
theme_economist(base_size=14)+
scale_colour_economist()+
guides(colour=guide_legend(title=NULL))

ggplot(diamonds,aes(carat,price))+
geom_point(aes(colour=cut,size=table))+
ggtitle("Scatter Plot")+
theme_wsj()+
scale_colour_wsj()+
guides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))
ggplot(diamonds,aes(carat,price))+
geom_point(aes(colour=cut,size=table))+
ggtitle("Scatter Plot")+
theme_economist(base_size=14)+
scale_colour_economist()+
guides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))
当然,如果你觉得上数据集太过密集,想要看某一个区域内的具体分布情况,只需要添加xlim()、ylim()参数即可:
ggplot(diamonds,aes(carat,price))+
geom_point(aes(colour=cut,size=table))+
ggtitle("Scatter Plot")+
theme_wsj()+
scale_colour_wsj()+
guides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))+
xlim(1,2)+
ylim(5000,10000)
ggplot(diamonds,aes(carat,price))+
geom_point(aes(colour=cut,size=table))+
ggtitle("Scatter Plot")+
theme_economist(base_size=14)+
scale_colour_economist()+
guides(size=guide_legend(title=NULL),colour=guide_legend(title=NULL))+
xlim(1,2)+
ylim(5000,10000)
最后,如果你想要拟合出该数据集的走势曲线,也可以通过添加geom_smooth()参数实现:
ggplot(diamonds,aes(carat,price))+
geom_point()+
geom_smooth(method='lm')+
theme_classic()
微信:ljty1991
博客主页:raindu's home
个人公众号:数据小魔方(datamofang)
团队公众号:EasyCharts
qq交流群:[魔方学院]553270834
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3128782/ ,如需转载,请注明出处,否则将追究法律责任。