可视化变量分布图(可视化系列2散点图和气泡图)
原创 onlybugs
“ ggplot2语法结构虽说简单,但是也需要学习路线,况且日常使用中我们其实不需要这么复杂的绘图思路。那么,qplot的作用就体现出来了 ----- 快速绘制一些基本图表。”ggplot2应该可以说是画图界的王者风范了,但是对于绘制一些简单的基本图表,我们没必要直接使用ggplot2的语法功能,而是可以使用它提供的qplot函数进行画图。qplot,它是quick plot的缩写,是ggplot2内部封装好的一个函数,使用qplot我们就可以快速的画出我们的一些非常基本的图形了,它也是学习ggplot2的第一步,通过对它的使用,我们慢慢就会感受到ggplot2的核心思想。废话不多说,开始今天的内容吧。
01—
使用qplot绘制基本散点图
本文以及后面的数据大部分来自R的基础环境,如果使用到了一些新的数据集,我会告诉大家来自哪个包。
在开始绘图之前,我们先加载画图包,
然后我存了一份我们使用的数据的副本,后面我们的操作都是基于mt这个数据框的
library(ggplot2)
mt <- mtcars
# 查看一下mt
head(mt)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
mtcars的数据来自1974年美国汽车趋势杂志,包括32辆汽车(1973-74款)的油耗和10个方面的汽车设计和性能,我们初期画图主要是使用它以及另一个内置的钻石的数据集。
接下来,我们用qplot快速的绘制一张散点图吧
qplot(wt,drat,data = mt)
我来解释一下参数,使用data=后面跟我们的绘图数据,然后第一个和第二个参数是我们要画图的列的列名,第一个会默认映射为x上,第二个是默认映射在y轴上了。
是不是非常简单呢?
02—
使用qplot调整散点的颜色和大小
从目前来看,我们的wt和drat其实是有一定的负相关关系的。不过讨论图的意义不是我们这套教程的重点,我们现在想让点看起来大一些,然后有一点颜色。
#调整点的大小以及给点增加颜色
qplot(wt,drat,data = mt,
size = I(5),
color = I('red'))
使用size和color参数就可以调整我们的大小和颜色了,可能大家看到了我使用了一个叫做I()的函数。没有关系,目前你只需要记住它是手动设置属性的函数就可以,后面你慢慢就会理解它的含义了。
下面给出一个自动设置图形属性的案例
(如果你不知道factor是什么,请在历史推文中搜索R语言编程系列进行学习/百度一下也可以)
#不使用I函数 自动设置属性
qplot(wt,drat,data = mt,
color = factor(vs),
size = factor(gear))
我们的效果已经非常好了,不是吗?
下面我们再讲两个散点图的图形属性,也是我们比较常用的,一个是透明度,另一个是形状。
03—
使用qplot调整散点的形状和透明度
我们通过了size参数和color参数修改了点的大小和颜色,并且通过了指定映射使得数据的某些属性映射到了统计图中,但是我们很多时候还想让点的透明度和形状进行改变,我们应该如何操作呢?
#更改透明度
qplot(wt,drat,data = mt,
color = factor(vs),
size = factor(gear),
alpha=I(.5))
我们点的透明度发生了明显的变化,你甚至可以把它改的更小一些。
#修改点的形状
qplot(wt,drat,data = mt,
color = factor(vs),
size = factor(gear),
alpha = I(.8),
shape = I(3))
我们的点变成了一个个的十字形状,是不是很有趣呢,不过这对于数据的展现意义不是很高,对于这一组数据,最好的还是上面的圆点,透明度80%左右,然后映射了颜色和大小的图,效果是最好的。
通过今天的文章,相信你已经透彻的了解了使用qplot来绘制散点图的方法了,目前的绘图函数只要稍微调整一下,应该就足够你绘制大多数的散点图了。
下面留下一个简单的练习,
#仍旧使用mtcars数据集
#我们看看disp和hp之间的关系绘制散点图
#接下来让不同的gear数呈现不同的颜色
#不同的am值呈现不同大小
#让所有点透明度为0.6
# 图结果如下
下次内容将继续分享使用qplot进行绘图的技巧,目前内容定为折线图或者条形图以及常见的绘图属性。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com