使用ggplot2进行作图
相比于R的内置函数plot,qplot具有的优势是能够绘制动态的图,进行储存
例如我们可以这样对qplot进行操作

bar1=qplot(foo,bar)
bar1##出的是结果图
bar1=plot(foo,bar)###但是如果直接对plot的结果进行赋值的时候,其可以直接画图,但是bar1 值不存在

使用ggplot2进行作图
1.首先从geom_point()进行学习,这个小函数是添加点,其常见的参数有
x 传入的数据x值

y 传入的数据y值

alpha 点的透明度

colour 点的颜色

fill 点的颜色填充

group 分组,美学映射

shape 点的形状

size点的大小

stroke对于shape 有边界的点,可通过stroke对边界外的进行展示着色
na.rm 参数 是否移除NA值(当na.rm=FALSE时,移除NA值时将警告,否则不)

geom_point()函数的使用

??geom_pointp <- ggplot(mtcars, aes(wt, mpg))#建立一个空白画板
p + geom_point()####添加点
# Add aesthetic mappings
View(mtcars)
p + geom_point(aes(colour = factor(cyl)))###美学映射,点的颜色以cy1的因子数进行赋值
p + geom_point(aes(size = qsec))# A "bubblechart":点的大小按照qsec的值进行画图
p + geom_point(aes(shape = factor(cyl),colour = factor(cyl),size = qsec),alpha=0.8)###美学映射,点的形状根据cy1的因子水平进行分类,点的颜色以cy1的因子数进行赋值,点的大小按照qsec进行画图,alpha 设置点的透明度结果图1

结果图1


# For shapes that have a border (like 21), you can colour the inside and outside separately. Use the stroke aesthetic to modify the width of the border对于形状有边界的点,可以通过stroke对边界外的延伸部分进行展示着色ggplot(mtcars, aes(wt, mpg)) +geom_point(shape = 21, colour = "black", fill = "white", size = 5, stroke = 3)见图2

图2

根据ggplot2对图层的多层叠加,可以分层惊喜修改点的颜色和形状

# You can create interesting shapes by layering multiple points of
# different sizes
eg:
p <- ggplot(mtcars, aes(mpg, wt, shape = factor(cyl)))##设置点的形状根据cyl进行变化,此处的图层1的shape  对后面的图层点的形状有影响
p + geom_point(aes(colour = factor(cyl)), size = 4)##图3eg:
p <- ggplot(mtcars, aes(mpg, wt, shape = factor(cyl)))
p + geom_point(aes(colour = factor(cyl)), size = 4) +geom_point(colour = "grey90", size = 1.5)###图层2 的点颜色为grey90,实际上是白色,大小为1.5,实际上是把图层1的点空心化,去掉大小1.5的有色点,见图4eg:
p <- ggplot(mtcars, aes(mpg, wt, shape = factor(cyl))##创建空白图层
p + geom_point(colour = "black", size = 4.5) +  ##黑色4.5的点geom_point(colour = "pink", size = 4) + ##图层2 点粉色,大小为4,盖住了图层一的部分geom_point(aes(shape = factor(cyl)))

图3

图4

关于geom_point()中na.rm=参数,

#### geom_point warns when missing values have been dropped from the data set
#### and not plotted, you can turn this off by setting na.rm = TRUEmtcars2 <- transform(mtcars, mpg = ifelse(runif(32) < 0.2, NA, mpg))  ###此处将mtcars中通过均匀分布小于0.2的mpg行替换成NA
ggplot(mtcars2, aes(wt, mpg)) + geom_point()##在绘图的过程中,将移除NA值,并以warning 的形式告知,
ggplot(mtcars2, aes(wt, mpg)) + geom_point(na.rm = TRUE)###当使用了na.rm=TRUE 后,将直接移除数据中包含NA的值,并且不警告

关于ggplot2 中的geom_abline()函数

常见的用法
1.geom_abline() 添加非水平或者垂直线线,需要给的最少的参数是slope and intercept

geom_abline(
mapping = NULL,
data = NULL, …,
slope,
intercept,
na.rm = FALSE,
show.legend = NA
)

2.geom_hline()添加水平线
geom_hline(
mapping = NULL,
data = NULL,
…,
yintercept,
na.rm = FALSE,
show.legend = NA
)

3.geom_vline()添加垂直线
geom_vline(
mapping = NULL,
data = NULL,
…,
xintercept,
na.rm = FALSE,
show.legend = NA
)

??geom_abline##通过??geom_ 查看相应的文档
p <- ggplot(mtcars, aes(wt, mpg))
p=p+ geom_point(size=3,shape=4,color="green",na.rm=FALSE)##点的形状是4,为X  颜色为绿色
# Fixed values
p + geom_vline(xintercept = 5)####添加垂直于x轴的线,x=5  ,图5
p + geom_vline(xintercept = 1:5)##添加添加垂直于x轴的线,x=1,2,3,4,5的线,图6
p + geom_hline(yintercept = 20)###添加垂直于y轴的线,y=20 图7###添加非垂直或者水平线
p + geom_abline() # Can't see it - outside the range of the data
p + geom_abline(intercept = 20)   ###图8#######计算直线最佳拟合值的斜率和截距,
coef(lm(mpg ~ wt, data = mtcars))###计算mpg和wt 的线性关系,得到截距和斜率
p + geom_abline(intercept = 37, slope = -5,col="blue",lty=4,size=0.5)###根据斜率和截距,添加趋势线,线的颜色为蓝色,线形为虚线
# But this is easier to do with geom_smooth:
p + geom_smooth(method = "lm", se = FALSE)关于分面Facet
###使用美学在不同的分面进行展示
p <- ggplot(mtcars, aes(mpg, wt)) +geom_point() +facet_wrap(~ cyl)  ##图9#####按照每组cyl的平均值,添加每个分面的水平线
mean_wt <- data.frame(cyl = c(4, 6, 8), wt = c(2.28, 3.11, 4.00))
p + geom_hline(aes(yintercept = wt), mean_wt)  图10####添加水平线
ggplot(mtcars, aes(mpg, wt, colour = wt)) +  ###x轴是mtcars数据中的mpg ,y轴是wt,颜色也是wtgeom_point() +geom_hline(aes(yintercept = wt, colour = wt), mean_wt) +  ##加水平线,y=mean_wt,其中facet_wrap(~ cyl)###分面设置按照cyl  图11

图5
图6
图7

图8

图9
图9

图10

图11

本次学习的全部代码

qplot()作为ggplot2()的姊妹出场R=qplot(foo,bar,geom="blank")####构建一个空的画板
R=R+geom_point(size=3,shape=6,color="blue")##使用原始给的数据,作为点,点的大小为3,形状为三角形,颜色为蓝色
R=R+geom_line(color="red",linetype=2)###添加线,线形为虚线####geom_point()专场
??geom_pointp <- ggplot(mtcars, aes(wt, mpg))#建立一个空白画板
p=p + geom_point()####添加点# Add aesthetic mappings
View(mtcars)
p + geom_point(aes(colour = factor(cyl)))###美学映射,点的颜色以cy1的因子数进行赋值
p + geom_point(aes(size = qsec))# A "bubblechart":点的大小按照qsec的值进行画图
p + geom_point(aes(shape = factor(cyl),colour = factor(cyl),size = qsec),###美学映射,点的形状根据cy1的因子水平进行分类,点的颜色以cy1的因子数进行赋值,点的大小按照qsec进行画图alpha=0.5)###设置点的透明度#######点的颜色和大小
# Set aesthetics to fixed value
ggplot(mtcars, aes(wt, mpg)) + geom_point(colour = "red", size = 3)# Varying alpha is useful for large datasets
View(diamonds)
d <- ggplot(diamonds, aes(carat, price))
d + geom_point(alpha = 1/10)###对于大数据集,点的颜色透明度渐变
d + geom_point(alpha = 1/20)
d + geom_point(alpha = 1/100)##对于形状有边界的点,可以通过stroke对边界外的延伸部分进行展示着色
ggplot(mtcars, aes(wt, mpg)) +geom_point(shape = 21, colour = "black", fill = "white", size = 3, stroke = 2)###通过多图层进行设置点的属性################example1
p <- ggplot(mtcars, aes(mpg, wt, shape = factor(cyl)))##设置点的形状根据cyl进行变化,此处的图层1的shape  对后面的图层点的形状有影响
p + geom_point(aes(colour = factor(cyl)), size = 4)+ ##点的颜色根据cyl 进行变化geom_point(colour = "grey90", size = 1.5)  ###图层2 的点颜色为grey90,实际上是白色,大小为1.5,实际上是把图层1的点空心化,去掉大小1.5的有色点#############example2
p + geom_point(colour = "black", size = 4.5 ) +  ##黑色4.5大小的点geom_point(colour = "pink", size = 4) +  ###粉色4的点geom_point(aes(shape = factor(cyl)))  ##点的形状按照cyl 进行定义##########关于geom_point 中的na.rm 参数
mtcars2 <- transform(mtcars, mpg = ifelse(runif(32) < 0.2, NA, mpg))  ###此处将mtcars中通过均匀分布小于0.2的mpg行替换成NA
ggplot(mtcars2, aes(wt, mpg)) + geom_point()##在绘图的过程中,将移除NA值,并以warning 的形式告知,
ggplot(mtcars2, aes(wt, mpg)) + geom_point(na.rm = TRUE)###当使用了na.rm=TRUE 后,将直接移除数据中包含NA的值,并且不警告################geom_abline()专场
??geom_abline##通过??geom_ 查看相应的文档
p <- ggplot(mtcars, aes(wt, mpg))
p=p+ geom_point(size=3,shape=4,color="green",na.rm=FALSE)##点的形状是4,为X  颜色为绿色
# Fixed values
p + geom_vline(xintercept = 5)####添加垂直于x轴的线,x=5
p + geom_vline(xintercept = 1:5)##添加添加垂直于x轴的线,x=1,2,3,4,5的线
p + geom_hline(yintercept = 20)###添加垂直于y轴的线,y=20###添加非垂直或者水平线
p + geom_abline() # Can't see it - outside the range of the data
p + geom_abline(intercept = 20)####计算直线最佳拟合值的斜率和截距,
coef(lm(mpg ~ wt, data = mtcars))###计算mpg和wt 的线性关系,得到截距和斜率
p + geom_abline(intercept = 37, slope = -5,col="blue",lty=4,size=0.5)###根据斜率和截距,添加趋势线,线的颜色为蓝色,线形为虚线
# But this is easier to do with geom_smooth:
p + geom_smooth(method = "lm", se = FALSE)###使用美学在不同的分面进行展示
p <- ggplot(mtcars, aes(mpg, wt)) +geom_point() +facet_wrap(~ cyl)#####按照每组cyl的平均值,添加每个分面的水平线
mean_wt <- data.frame(cyl = c(4, 6, 8), wt = c(2.28, 3.11, 4.00))
p + geom_hline(aes(yintercept = wt), mean_wt)####添加水平线
ggplot(mtcars, aes(mpg, wt, colour = wt)) +  ###x轴是mtcars数据中的mpg ,y轴是wt,颜色也是wtgeom_point() +geom_hline(aes(yintercept = wt, colour = wt), mean_wt) +  ##加水平线,y=mean_wt,其中facet_wrap(~ cyl)###分面设置按照cyl

这个最后一个关于wt 的问题还不懂,后面还要继续学习

R语言作图之ggplot2初识(1)相关推荐

  1. R语言作图之ggplot2作图2

    1.geom_boxplot() 箱线图 p <- ggplot(mpg, aes(class, hwy)) p + geom_boxplot() ###见图1# Orientation fol ...

  2. R语言数据可视化 ggplot2基础3 添加几何对象

    R语言数据可视化 ggplot2基础3 添加几何对象 数据的统计变换 添加几何对象 数据的统计变换 添加几何对象 上一讲我们介绍的是如何创建散点图,这一讲我们介绍如何创建其他类型的图,以及怎么创建有多 ...

  3. R语言数据可视化 ggplot2基础1 ggplot2 图形的分层语法 Layered Grammar 简介

    R语言数据可视化 ggplot2基础1 ggplot2 图形的分层语法 Layered Grammar 简介 分层语法的组成(data-stat-geom-scale-coord-facet) 用分层 ...

  4. R语言作图——Pie chart(饼图)

    原创:黄小仙 今天要给大家介绍的Pie chart(饼图),本来是不打算写这个的,因为用Excel画饼图实在是太方便了.本着能少动一下是一下的懒人原则,是不打算用R画的,再说,本小仙不是掌握了R作图大 ...

  5. R语言作图——Circular bar plot(环形柱状图)

    原创:黄小仙 不知不觉,距离小仙上次发文已经过去五个多月了.R语言作图系列的更新频率跟理想中的一月一次差别有点忒大了,不得不让小仙陷入深深的反思,对于时间的规划也有了一些新的感悟. 不知道大家有没有跟 ...

  6. R语言作图——Split violin plot

    原创:黄小仙 最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起.为了跟上可视化的潮流,小仙也来尝 ...

  7. R语言可视化包ggplot2改变图例(legend)的标题(title)实战

    R语言可视化包ggplot2改变图例(legend)的标题(title)实战 目录 R语言可视化包ggplot2改变图例(legend)的标题(title)实战

  8. R语言可视化包ggplot2在一张图中画出两条线实战

    R语言可视化包ggplot2在一张图中画出两条线实战 目录 R语言可视化包ggplot2在一张图中画出两条线实战

  9. R语言可视化包ggplot2绘制分组的条形图(bar plot、柱状图)实战:多变量柱状图

    R语言可视化包ggplot2绘制分组的条形图(bar plot.柱状图)实战:多变量柱状图 目录

最新文章

  1. forward和redirect的区别
  2. 银江科技企业课堂小结
  3. ubuntu连有线网 无法连接外网
  4. RC电路输出波形的时域与频域分析
  5. 为什么打不开_发票查重百科导出的发票台账为什么附件打不开?
  6. [洪流学堂]Hololens开发高级篇5:空间映射(Spatial mapping)
  7. php phar效率,PHP的Phar包原来性能这么强
  8. Spring Boot Actuator 监控和管理应用程序
  9. 每日学习打卡-汇总处
  10. java经典算法(二)---zws
  11. django-数据库[ 基本操作 ]
  12. 每周阅读精选(2013-02-18)
  13. 卡耐基的这100句话,畅销85年,改变了很多人
  14. 菜鸡解析CSS(cascading style sheet)
  15. Java之Stream的管道处理
  16. 原创超简单代码(1.19)
  17. DM数据库 HUGE TABLE简析
  18. Python:实现similarity search相似性搜索算法(附完整源码)
  19. Grade for Android 之二:Groovy 与Java的语法区别
  20. 非华为电脑如何与matepad pro进行多屏协同,以及如何处理连接失败等问题

热门文章

  1. 上班一族“黑话”辞典大曝光
  2. Linux 进程间通讯方式 pipe()函数
  3. php 中 map和array,浅析php中array_map和array_walk的使用对比
  4. 基于Python-turtle库绘制小猪佩奇、小猫咪
  5. Android查看支持硬编解码器(十五)
  6. Win10彻底关闭Antimalware Service Executable占用内存过高问题
  7. Emacs:报错:File error: Cannot open load file,cl-lib解决
  8. android源码灭屏时蓝牙自动配对
  9. Android Camera数据流分析全程记录(overlay方式一)
  10. ffmpeg之封装AAC