R作图系列-----ggplot2-qplot

diamonds数据结构

 
  • ggplot2对数据框类型数据十分友好,colour\shape\size必须赋值等于常数数据框中的分类变量(因子类型数据)

  • geom=point/smooth
dsmall <- diamonds[sample(nrow(diamonds), 100), ]

qplot(carat, price, data = diamonds)

##1.基本aesthetic attributes :colour\shape\size\alpha

qplot(carat, price, data = dsmall, colour = color) 
qplot(carat, price, data = dsmall, shape = cut) 
qplot(carat, price, data = diamonds, alpha = I(1/10)) 
###You can also manually set the aesthetics using I() 

#####2.geometric object
###2.1 smooth method到底用什么方法 可以加载不同的包 如MASS 按相应的回归formula输入即可
qplot(carat, price, data = dsmall, geom = c("point", "smooth")) #####默认小样本(小于1000)使用局部回归
qplot(carat, price, data = dsmall, geom = c("point", "smooth"),span = 0.2) #span调整平滑程度 
library(mgcv)
qplot(carat, price, data = dsmall, geom = c("point", "smooth"),method = "gam", formula = y ~ s(x, bs = "cs")) #####默认大样本(大于1000)的回归算法
qplot(carat, price, data = dsmall, geom = c("point", "smooth"),method = "lm") #最小二乘
  • Boxplots and jittered points(扰动点图)
  • geom=jitter/boxplot
  • how the values of the continuous variables vary with the levels of the categorical variable(一个连续变量、一个分类变量)
qplot(color, price / carat, data = diamonds, geom = "jitter",alpha = I(1 / 5)) #第一个参数是分类变量,第二个是连续变量
qplot(cut,price/carat,data=dsmall,geom=c('jitter','boxplot'),alpha=I(0.5),colour=cut)##jitter boxplot 可以一起用
##boxplot中colour是外框线颜色,fill是填充颜色,size是线的粗细
  • geom=histogram\density\bar
  • histogram:binwidth(组距)、xlim=c(...,...)
  • density,adjust(取值0到1,平滑程度)
qplot(carat, data = diamonds, geom = "histogram", binwidth = 0.01,xlim = c(0,3))
##histogram默认Y轴为频数

qplot(carat, data = diamonds, geom = "histogram", fill = color) #使用fill参数可以很快得到堆积柱形图

qplot(color, data = diamonds, geom = "bar", weight = carat) +scale_y_continuous("carat") 
#y轴不再是频数,而是对给定的weight求和,+号后面的代码是变坐标轴名称count为carat
  • geom=line/path
year <- function(x) as.POSIXlt(x)$year + 1900  #as.POSIXlt(x)读取的日期(字符串) 转化为 “Date” 类型数据
qplot(unemploy / pop, uempmed, data = economics,geom = c("point", "path"))
qplot(unemploy / pop, uempmed, data = economics,geom = "path", colour =year(date)) + scale_size_area()  #按年份更换颜色
  • 分组画图 facets
qplot(carat, price, data = dsmall, facets = color ~ .,geom = "point",xlim = c(0, 3))
#facets = row var ∼ col var 
#指定行变量和列变量拆分绘图窗格
fill = I("blue")显示蓝色 ##用I()告诉R,blue是参数不是变量
xlim, ylim   x轴y轴的范围  xlim = c(0, 3)
log   对数变换 log="xy" x轴和y轴都进行对数变换
qplot(carat, price, data = dsmall, log = "xy")
main   图的标题
xlab, ylab  x轴y轴的标题  ylab = expression(frac(price,carat)) ##显示为price/carat表达式 更多表达式?plotmath获得

将变量传递给指定的图形属性,如钻石颜色(分类变量)到颜色,这是一个映射过程,官方称作scale,画布上会显示图例。


 

posted @ 2017-10-01 14:51  wendy921  阅读(467)  评论(0编辑  收藏  举报