R_DATACAMP4 Data Visualization with ggplot2

使用GGPLOT2包进行数据可视化

  • Introduction简介

geom_smooth可以用于散点图,拟合一条直线,可以用于做预测
geom_point(alpha = 0.4)透明度,40%可见,60%透明

dia_plot <- ggplot(diamonds, aes(x = carat, y = price))
dia_plot + geom_smooth(aes(clarity = col), se = FALSE)其中SE = FALSE是取消灰色部分

  • Data数据

lm()函数通常用来拟合回归模型

ggplot(mtcars, aes(x = wt, y = mpg, col = cyl)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
geom_smooth(aes(group = 1), method = "lm", se = FALSE, linetype = 2)

facet_grid 将 grid 分成好几个面
facet_grid(. ~ Measure)按measure分,measure中的变量为character

geom_jitter()调整,消除点的重合

  • Aesthetics

ggplot(mtcars, aes(x = wt, y = mpg, col = cyl)) +
geom_point(shape = 2,size = 4)
shape和size可以分别制定点的形状以及大小

ggplot(mtcars, aes(x = wt, y = mpg, fill = cyl, col = am)) +
geom_point(shape = 21, size = 4, alpha = 0.6)fill是填充,此时再用col分颜色的话,col这边就是边框颜色

my_color <- "#4ABEFF"
geom_point(color = my_color)根据颜色编号,改变散点图中所有点的颜色

geom_text(label = rownames(mtcars), color = 'red')直接将文本信息加入散点图,即将散点替换为文本信息。

ggplot(mtcars, aes(x = mpg, y = qsec, col = factor(cyl), shape = factor(am))) +
geom_point()此处am和cyl都是num的类型,转化为factor后才好合理的展示出来。

cyl.am +
geom_bar(position = "dodge") +
scale_x_discrete("Cylinders") +
scale_y_continuous("Number") +
scale_fill_manual("Transmission",
values = val,
labels = lab) 柱形图
geom_bar(position = "stack")正常柱形图
geom_bar(position = "fill")堆积柱形图
geom_bar(position = "dodge") 百分比堆积柱形图

scale_y_continuous(limits = c(-2,2))

ggplot(diamonds, aes(x = carat, y = clarity, col = price)) +
geom_point(alpha = 0.5, position = "jitter")此处的jitter应该还是为了消除点的重合,不过为什么是用position还是不太明白,后续知道了的话记得补充。

  • Geometries

ggplot(mtcars, aes(x = cyl, y = wt)) +
geom_point(position =position_jitter(0.1))
???jitter到底是啥意思
ggplot(mtcars, aes(x = cyl, y = wt)) +
geom_jitter(width = 0.1)

ggplot(mtcars, aes(mpg)) +
geom_histogram(aes(y = ..density..), binwidth = 1, fill = "#377EB8")
直方图(仅限X为连续型变量)的构建,binwidth:组距
density(一维密度估计),x(组的中心估计)——默认利用count和x;如若#要引用这几个变量,则在变量左右加双圆点,譬如 ..density..

ggplot(mtcars, aes(x = cyl, fill = am)) +
geom_bar(position = position_dodge(width = 0.2))柱状中,俩相邻的柱子部分重合

位置调整参数:
dodge:“避让”方式,即往旁边闪,如柱形图的并排方式就是这种。
fill:填充方式, 先把数据归一化,再填充到绘图区的顶部。
identity:原地不动,不调整位置
jitter:随机抖一抖,让本来重叠的露出点头来
stack:叠罗汉​

geom_freqpoly()频数多边形图
原理是跟直方图一样的,其中binwidth参数必须给出。
ggplot(mtcars, aes(mpg, col = cyl)) +
geom_freqpoly(binwidth = 1, position = "identity")

ggplot(mtcars, aes(x = cyl, fill = am)) +
geom_bar() +
scale_fill_brewer(palette = "Set1")
第三行为颜色的设置

RColorBrewer包提供了3套很好的配色方案。用户只需要指定配色方案的名称,就可以用包中的brewer.pal()函数生成颜色
连续型Sequential:生成一系列连续渐变的颜色,通常用来标记连续型数值的大小。
极端型Diverging:生成用深色强调两端、浅色标示中部的系列颜色,可用来标记数据中的离群点。
离散型Qualitative:生成一系列彼此差异比较明显的颜色,通常用来标记分类数据。
display.brewer.all(type = "qual")展示离散型的全部颜色
scale_fill_manual()自定义填充颜色,和 scale_fill_brewer对比之。

  • qplot and wrap-up

The old way (shown)旧方法:

plot(mpg ~ wt, data = mtcars) # formula notation
with(mtcars, plot(wt, mpg)) # x, y notation

Using ggplot:使用ggplot2:

ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()

Using qplot:使用qplot:

qplot(wt, mpg, data = mtcars)
qplot(wt, mpg, data = mtcars, size = factor(cyl))qplot的格式,会自动选择图表类型。

在aes中或者qplot中时,size = ...时,num格式要使用factor()将其转化为factor格式

geom_dotplot()

ggplot(ChickWeight, aes(x = Time, y = weight, color = Diet)) +
geom_line(aes(group = Chick), alpha = 0.3) +
geom_smooth(lwd = 2, se = FALSE)
折线图,其中group是分组,但是不是很明白smooth中的拟合线中lwd,se是什么意思

  • Statistics统计

stat_smooth()这是啥意思?——散点图的拟合线
geom_smooth(method = "lm", se = FALSE)method是规定拟合线的形状,此处为直线,se是把拟合线周围灰色部分去除

scale_color_manual(values = ....)手动设置颜色

stat_smooth(method = "loess", aes(group = 1, col = "All"),
se = FALSE, span = 0.7)分组设置的拟合线,其中ALL是汇总在一起的拟合线。

scale_color_gradientn(colors = brewer.pal(9, "YlOrRd"))当那个颜色包只有9个时,可以使用这个设置为渐变的

stat_quantile()分位数回归
stat_sum()

scale_size()啥意思?怎么用?

stat_summary()

quantile()分位数

  • Coordinates and Facets协作...方面?

scale_x_continuous(limits = c(3, 6), expand = c(0, 0))
coord_cartesian(xlim = c(3, 6))
coord_equal()
coord_fixed()这几个图层都是什么意思

stat_bin()

geom_bar()饼图
coord_polar(theta = "y")

geom_bar(width = .1) 这里的0为什么要省去

facet_grid()
facet_grid 将 grid 分成好几个面
facet_grid(.~ Name) # 按Name分面并且Name 内容显示在顶部
fact_grid(Name~.) #按name分面,Name显示在右边
facet_grid(Name~Left) #按两个参数分面 (参数1按行方式进行分面,参数2按列方式分面?)

  • Themes主题

library(ggthemes)
no_panels <- theme(rect = element_blank())
z +
no_panels +
theme(plot.background = element_rect(fill = myPink, color = "black", size = 3))

z +
theme(panel.grid = element_blank(),
axis.line = element_line(color = "red"),
axis.ticks = element_line(color = "red"))

theme(legend.position = )规定图例的位置

theme_bw()
theme_classic()
theme_gray()
theme_tufte()

  • Best Practices练习

stat_summary绘制汇总数据
ggplot(mtcars, aes(x = cyl, y = wt)) +
stat_summary(fun.y = mean, geom = "bar", fill = "skyblue") +
stat_summary(fun.data = mean_sdl, fun.args = list(mult = 1), geom = "errorbar", width = 0.1)

library(GGally)
ggparcoord()
scale_fill_gradientn(colors = )是啥子意思?

cf facet_wrap与facet_grid
facet_wrap和facet_grid不同在于facet_wrap是基于一个因子进行设置,facets表示形式为:变量(单元格)
而facet_grid是基于两个因子进行设置,facets表示形式为:变量变量(行列),如果把一个因子用点表示,也可以达到facet_wrap的效果,也可以用加号设置成两个以上变量

  • Case Study案列教学

geom_histogram()直方图 是要设置宽度的,没有y值
ggplot(adult, aes (x = SRAGE_P, fill= factor(RBMI))) +
geom_histogram(binwidth = 1)

table()

library(reshape2)
library(ggthemes)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容