2019-04-25用ggplot2绘制散点图

文章改编自https://michaeltoth.me/a-detailed-guide-to-the-ggplot-scatter-plot-in-r.html#a-detailed-guide-to-the-ggplot-scatter-plot-in-r

散点图是最常见的统计绘图之一,作图当然要第一传递有用的、有意义的信息,然后是做的酷炫。这样给老板汇报,还是做学术演讲,再到要人命的SCI文章的发表,都比较重要。

这就是一个好的散点图例子,Scatter Plot of Adam Sandler Movies from FiveThirtyEight, Adam Sandler 的电影被分成了三个类别,用不同的颜色进行显示。

image.png

另外一个比较喜欢的例子,The Famous Gapminder Scatter Plot of Life Expectancy vs. Income by Country,有力的展现了寿命预期和收入间的关系,有趣的是中国和印度是两个中心点,以人口数作为点大小的标尺进行了绘图,从贫穷到富裕国家进行了分类。


image.png

下面用ggplot2绘制一下简单的散点图,用它自带的mtcars数据包。

(1)先看一下数据,包含11列。

head(mtcars,n=10)
                   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Duster 360        14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 240D         24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230          22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 280          19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4

(2)用ggplot图绘制简单散点图

library(ggplot2)
ggplot(mtcars) + geom_point(aes(x = wt, y = mpg))
image.png

(3)改点的颜色为蓝色

ggplot(mtcars) + geom_point(aes(x = wt, y = mpg), color = 'blue')
image.png

(4)以am区分各个点的颜色

mtcars$am <- factor(mtcars$am)#先把am改成因子型
ggplot(mtcars) +  geom_point(aes(x = wt, y = mpg, color = am))
image.png

如果你不改am为因子型,am是数值向量,绘制的散点的深浅表示am的数值大小,这样就不能代表am的意义,因为它是代表的自动还是手动挡的车,是一个2分类变量,不是数值变量。错误的绘图如下:


image.png

(5)根据am,以形状区分。

ggplot(mtcars) + geom_point(aes(x = wt, y = mpg, shape = am))
image.png

(6)根据cyl的数值大小,区分各个散点。

ggplot(mtcars) +  geom_point(aes(x = wt, y = mpg, size = cyl))
image.png

(7)改变点的透明度。

ggplot(mtcars) +  geom_point(aes(x = wt, y = mpg, alpha = cyl))
image.png

(8)也可以设置透明度为固定值。

ggplot(mtcars) +  geom_point(aes(x = wt, y = mpg, size = cyl), alpha = 0.3)
image.png

(9)点的形状也可以根据需要更换。

ggplot(mtcars) +   geom_point(aes(x = wt, y = mpg), shape = 18)
image.png

(10)最后,按照一开始的例2图,仿制一张散点图。是不是改一改就能发表了,哈哈哈!!!

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

推荐阅读更多精彩内容