数据挖掘20210111学习笔记

R语言作图

图片.png

画图所需的包

低级绘图函数建立在高级绘图函数基础上,不能单独使用

图片.png

ggplot2语法

1.入门级绘图模板
2.映射-颜色、大小、透明度、形状
3.分面
4.几何对象
5.统计变换
6.位置调整
7.坐标系

#作图分三类
#1.基础包
plot(iris[,1],iris[,3],col = iris[,5]) 
text(6.5,4, labels = 'hello')

boxplot(iris[,1]~iris[,5])

dev.off()   #关闭画板,清空画板

#2.ggplot2 中坚力量
test = iris
library(ggplot2)
ggplot(data = test)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species))

#3.ggpubr 江湖救急
library(ggpubr)
ggscatter(iris,
          x="Sepal.Length",
          y="Petal.Length",
          color="Species")

1.入门级模板

ggplot(data = <DATA>)+
<GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))
> ggplot(data = iris)+
+   geom_point(mapping = aes(x = Sepal.Length,
+                            y = Petal.Length))

2.映射:按照数据框的某一列来定义图的某个属性;手动设置

映射
手动设置

例1

> ggplot(data = test)+
+   geom_point(mapping = aes(x = Sepal.Length,
+                            y = Petal.Length,
+                            color = Species),    #aes的参数是列名,是映射
+              shape =8)  #shape是geom_point的函数,而不是aes的函数,geom_point函数的参数是具体颜色形状等

例2

> ggplot(data = test)+
+   geom_point(mapping = aes(x = Sepal.Length,
+                            y = Petal.Length),
+              color="blue")

3.分面

> ggplot(data = test) + 
+   geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) + 
+   facet_wrap(~ Species) #按照Species这一列的取值分为子图,有几个取值就分为几个子图

双分面

> test$Group = sample(letters[1:5],150,replace = T)
> ggplot(data = test) + 
+   geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) + 
+   facet_grid(Group ~ Species) 

4.几何对象

分组

> ggplot(data = test) + 
+   geom_smooth(mapping = aes(x = Sepal.Length, 
+                             y = Petal.Length)) 


> ggplot(data = test) + 
+   geom_smooth(mapping = aes(x = Sepal.Length, 
+                             y = Petal.Length,
+                             group = Species))    #将一条线分成三段


> ggplot(data = test) + 
+   geom_smooth(mapping = aes(x = Sepal.Length, 
+                             y = Petal.Length,
+                             color = Species))    #分成三段,每段一种颜色

几何对象可以叠加:局部映射VS全局映射

#局部映射
> ggplot(data = test) + 
+   geom_smooth(mapping = aes(x = Sepal.Length,y = Petal.Length))+
+   geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length))


#全局映射
> ggplot(data = test,mapping = aes(x = Sepal.Length, y = Petal.Length))+
+   geom_smooth()+
+   geom_point()

图片.png
#练习6-2
# 1.尝试写出下图的代码
# 数据是iris
# X轴是Species
# y轴是Sepal.Width
# 图是箱线图
> ggplot(data = iris,mapping = aes(x = Species, y = Sepal.Width))+
+   geom_boxplot()

# 2. 尝试在此图上叠加点图,
# 能发现什么问题?
> ggplot(data = iris,mapping = aes(x = Species, y = Sepal.Width))+
+   geom_boxplot()+
+   geom_point()     #在图上看不出每个子集有50个元素

# 3.用下列代码作图,观察结果
> ggplot(test,aes(x = Sepal.Length,y = Petal.Length,color = Species)) +
+   geom_point()+
+   geom_smooth(color = "black")    #当局部映射和全局映射冲突时,以局部映射为准

5.统计变换-直方图

> View(diamonds)
> table(diamonds$cut)
> ggplot(data = diamonds) + 
+   geom_bar(mapping = aes(x = cut))
> ggplot(data = diamonds) + 
+   stat_count(mapping = aes(x = cut))

统计变化使用场景
(1)使用表中数据直接作图,而不统计

> fre = as.data.frame(table(diamonds$cut))
> ggplot(data = fre) +
+   geom_bar(mapping = aes(x = Var1, y = Freq), stat = "identity")

(2)不统计count,统计prop(比例),count改为prop

> ggplot(data = diamonds) + 
+   geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))

6.位置关系

抖动的点图

> ggplot(data = mpg,mapping = aes(x = class, 
+                                 y = hwy,
+                                 group = class)) + 
+   geom_boxplot()+
+   geom_point()
图片.png
> ggplot(data = mpg,mapping = aes(x = class, 
+                                 y = hwy,
+                                 group = class)) + 
+   geom_boxplot()+
+   geom_jitter()
图片.png

堆叠直方图

> ggplot(data = diamonds) + 
+   geom_bar(mapping = aes(x = cut,fill=clarity))
图片.png

并列直方图

> ggplot(data = diamonds) + 
+   geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge")
图片.png

7.坐标系

翻转coord_flip()

> ggplot(data = mpg, mapping = aes(x = class, y = hwy)) + 
+   geom_boxplot() +
+   coord_flip()
图片.png
> bar <- ggplot(data = diamonds) + 
+   geom_bar(
+     mapping = aes(x = cut, fill = cut), 
+     show.legend = FALSE,
+     width = 1
+   ) + 
+   theme(aspect.ratio = 1) +
+   labs(x = NULL, y = NULL)
> bar + coord_flip()
图片.png

极坐标系coord_polar()

> bar + coord_polar()
图片.png

图片.png
图片.png
> ggplot(iris, aes(x = Species, y = Sepal.Width))+
+   geom_violin(aes(fill = Species))+
+   geom_boxplot()+
+   geom_jitter(aes(shape = Species))+
+   coord_flip()+
+   theme_classic()

ggpubr

ggscatter(iris,x="Sepal.Length",y="Petal.Length",color="Species")
图片.png
> p <- ggboxplot(iris, x = "Species", y = "Sepal.Length",
+                color = "Species", shape = "Species",
+                add = "jitter")
图片.png
> my_comparisons <- list( c("setosa", "versicolor"), c("setosa", "virginica"), c("versicolor", "virginica") )
> p + stat_compare_means(comparisons = my_comparisons)+ # Add pairwise comparisons p-value
+   stat_compare_means(label.y = 9) 
图片.png

图片.png
eoffice包 导出为ppt,全部元素都是可编辑模式
library(eoffice)
topptx(p,"iris_box_ggpubr.pptx")

小洁老师的画图合集 https://www.jianshu.com/nb/35523479

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

推荐阅读更多精彩内容