百迈克R语言培训笔记Day2

作者: ShawnMagic | 来源:发表于2019-03-31 23:16 被阅读6次

title: "Day2_ggplot2_实战"
author: "Dr Shawn Wang"
date: "2019/3/31"
output:html_document


ggplot2

概念

<font color = green size = 3>映射</font>

aes(x,y,col)

##################🔥 映射🔥####################
# load
library(ggplot2)
#  iris
str(iris)

用鸢尾花的数据尝试mapping数据,

p1 <- ggplot(data = iris, 
             mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           col = c(1:150))) +
  geom_line()+
  geom_point()
p1
  • 分组
p2 <- ggplot(data = iris, 
             mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           group = factor(Species),
                           col = Species)) +
  geom_line()+
  geom_point()
p2

<font color = green size = 3>几何对象geom</font>

p <- ggplot(data = iris, 
            aes(x = Sepal.Length,
                y = Petal.Length))+
  geom_point()
p + geom_line()
# 直方图
library(ggplot2movies)
str(movies)

m<- ggplot(data = movies,
           mapping = aes(x = rating))+
  geom_histogram(binwidth = 0.2)
m

<font color = green size = 3>统计变换</font>

p <- ggplot(data = iris, 
            aes(x = Sepal.Length,
                y = Petal.Length))+
  geom_point()+
  stat_smooth(method = 'loess')# 拟合方式
p
?stat_smooth

<font color = green size = 3>标度(scale)</font>

p <- ggplot(data = iris, 
            aes(x = Sepal.Length,
                y = Petal.Length,
                col = Species))+
  geom_point()
p + scale_y_log10() +
  stat_smooth(method = "lm")
m<- ggplot(data = movies,
           mapping = aes(x = rating))+
  geom_histogram(binwidth = 0.2)+
  scale_x_continuous(limits = c(2.5,7.5))# 所有映射内容都可以通过scale标度来调整。
m
str(iris)
m2<- ggplot(data = movies,
           mapping = aes(x = rating))+
  geom_histogram(binwidth = 0.2)+
  coord_flip()
m2

<font color = green size = 3>分面(facet)</font>
在一个页面上自动拜访多幅图形,先将数据划分多个子集, 然后将每个子集一次绘制到页面的不同面板中。

  • 网络型(facet_grid)和封面型(facet_wrap)
    • 网格型,面板的位置和数量是根据分组的结果决定的。
    • 封面型,排列顺序与网格型不同

mtcars

str(mtcars)
p = ggplot(mtcars,
           aes(mpg, wt))+
  geom_point()
p + facet_grid(cyl ~ .)# x ~ y, ~左边表示x轴按照x分面,~右边y表示y轴按照y分面。
p + facet_grid(vs ~ am) +
  stat_smooth(method = "lm",
              se = F,# se置信区间。
              aes(color = factor(cyl)))

<font color = green size = 3>图层(layer)</font>

图层之间相对独立,通过图层的叠加来完善 '+' 前后可以认为是独立的图层

# 不同图层也不是完全独立,互不影响的。
p3 <- ggplot(mtcars,
             aes(mpg, wt,
                 color = factor(gear)))+ 
  geom_point(aes(y = carb))+# 只是用carb覆盖了y = wt,这里只是改了之前继承的映射关系。
  geom_line(aes(y = carb))
p3

<font color = green size = 3>主题(theme)</font>

m<- ggplot(data = movies,
           mapping = aes(x = rating))+
  geom_histogram(binwidth = 0.2)
m + theme_bw()
m + theme_grey()
m + theme(axis.ticks = element_blank(),# 对文本进行修改要用element
          axis.text.y = element_text(face = "bold",
                                     size = 10, 
                                     colour = "purple"))

<font color = green size = 3>保存(ggsave)</font>

ggsave(file = "plot.png", width = 5
 ,       height = 6,
       dpi = 600)

时间序列绘图

#################==数据清洗==#########################
# 读取数据
ori.data <- read.csv("lesson8.csv",header = F)
# 查看
head(ori.data)
# 将原始数据转换为3列的矩阵
data <- matrix(as.matrix(ori.data), 
               nrow(ori.data)/3, # 返回ori.data行数/3
               3, 
               byrow = T)
head(data)
# 解释matrix中现在为字符串,需要转换时间,而且将将字符串转换为数字
# 分别转换
Sys.setlocale("LC_TIME", "C")## 设置R语言时区相关信息
date <- as.POSIXlt(data[,1], tz = "", "%a %b  %d %H:%M:%S HKT %Y")# as.POSIXlt 操作字符串转换为时间的函数,tz = time zone 默认的所以不同重新设置 后面为约定俗成的表示时间的语法。告诉函数该位置代表表示什么时间。最后正确的识别时间
head(date)
# 将剩下的转换为数字
IP <- as.numeric(data[,2])
PV <- as.numeric(data[,3])
p.data <- data.frame(date = date,
                IP = IP,
                PV = PV)
head(p.data)
library(ggplot2)
ggplot(p.data,
       aes(date, IP))+
  geom_line()
# 进一步优化数据
library(reshape2) #专门做数据格式转换的包,
meltdata <- melt(p.data, id = (c("date")))# 以date列为依据将ip 和 pv 融合
head(meltdata)
graphic <- ggplot(meltdata,
       aes(date, value, col = variable))+
  geom_line()+
  geom_point()
p2 <- graphic + facet_grid(variable ~ ., 
                     scales = "free_y")# scales 表示自由的y轴刻度,不强制一样。
p2
p3 = p2 + labs(x = "date",
          y = "Number of visitors",
          title = "IP and PV information of Aut to Oct of BT")
p4 = p3 +
  theme_bw()+
  theme(panel.grid = element_blank())+
  theme(plot.title = element_text(size = 20,
                                          face = 'bold'))+
  scale_color_discrete(name = "", labels = c("IP", "PV"))
p4 +theme(strip.text.y = element_text(angle = 0))

请从文件Exam.txt中读取数据,并基于Gene3进行分组绘制TGW和GT的散点图,颜色分别为(红,绿,蓝)(参考R语言基础操作和ggplot中数据、映射、几何对像等章节)

getwd()

data <- read.table("Exam.txt", header = T,
           sep = "\t")
library(ggplot2)
p <- ggplot(data,
            aes(x = data$TGW, y = data$GT, color = data$Gene3))+
  geom_point()+
  scale_color_manual(values = c("red", "green", "blue"))
p2 = p + labs(x = "TGW",
         y = "GT",
         title = "BMK_excise_1")+
  scale_color_discrete(name = "Gene3", 
                       label = c("A","B","C"))
p2

以下题目均以R内置数据集mtcars为绘图数据

  1. 请以hp为X轴,mpg为Y轴为映射关系绘制散点图(参考ggplot中数据.映射与几何对象章节)
p1 <- ggplot(mtcars,
       aes(hp, mpg))+
  geom_point()
p1
  1. 请在题1的基础上增加一个折线图的图层(参考图层与几何对象章节)
p2 = p1 + geom_line()
p2
  1. 请在题2的基顾上,将横轴的取值范围限制在100,200之间(参考标度章节)
p3 = p2 + scale_x_continuous(c(100,200))
p3
  1. 请在题2的基础上,以cyl为分组依据,将图中数据分组并填充不同的颜色(参考映射章节)
p4 = p2 + aes(color = cyl)
p4
  1. 请在题2的基础上,以gear和carb两列数据绘制分面图形(参考分面章节)
head(mtcars)
p5 = p2 + facet_grid(gear ~ carb)
p5
  1. 将题5的图形修改为黑白网格背景(参考主题章节)
p6 = p5 + theme_bw()
p6

相关文章

  • 百迈克R语言培训笔记Day2

    title: "Day2_ggplot2_实战"author: "Dr Shawn Wang"date: "201...

  • 百迈克R语言培训笔记Day1

    Rmarkdown title: "BMK Training R Zh.Z"author: "Dr Shawn W...

  • 百迈克R语言培训笔记Day3

    忙着赶中期,没时间整理了,中期完了再整理吧 ???主要是ggplot2的实操,画了几个比较经典的图,ggplot2...

  • 学习小组Day4笔记--呛

    Day4学习笔记 R语言初体验 怎么理解R 百度百科:R语言常用在数据统计分析、数据绘图和数据挖掘,是一种编程语言...

  • 学习小组Day4--呛

    Day4学习笔记 R语言初体验 怎么理解R 百度百科:R语言常用在数据统计分析、数据绘图和数据挖掘,是一种编程语言...

  • 2020-05-14

    学习小组DAY4笔记-lyq 今天初探R语言 R语言安装 R语言面板在简单了解

  • 学习小组Day4笔记--行

    正式开始学习R语言了,今天笔记内容为R语言基础和ggplot2的入门学习 R语言基础 1、认识R与RStudio ...

  • 学习小组Day5笔记--慧美

    R语言学习笔记 R语言常识部分 R语句由函数和赋值构成。 R使用 <-,而不是传统的 = 作为赋值符号。 寻求帮助...

  • 百度切片下载百度静态图

    人百度切片下载百度静态图R语言百度地图切片下载R语言百度地图下载

  • R 语言实战 读书笔记

    R语言实战(第2版) 学习笔记 1. R语言介绍 1.1 为什么用R语言 bla 1.2 基本操作 图表演示命令 ...

网友评论

    本文标题:百迈克R语言培训笔记Day2

    本文链接:https://www.haomeiwen.com/subject/mfmpbqtx.html