美文网首页R
R | ggplot2

R | ggplot2

作者: shwzhao | 来源:发表于2022-04-22 11:24 被阅读0次
    !备忘,方便自己查询,随着使用更新,无参考价值

    Function reference
    Top 50 ggplot2 Visualizations
    The R Graph Gallery
    RStudio Cheatsheets
    ggplot2: elegant graphics for data analysis 3rd edition
    《R语言数据可视化之美》配套代码
    知乎 | ggplot2作图最全教程(上)
    知乎 | ggplot2作图最全教程(中)
    知乎 | ggplot2作图最全教程(下)

    1. 基础

    • ggplot()
    一些想法:
    1. ggplot要有两个思想,图层和映射;
       图层的前后,达到的效果可能不同
    2. 有许多冗余的功能,但要注意这些功能的细微区别;
    3. 多看别人的绘图代码,提高对ggplot的理解和学习如何呈现自己的数据;
    4. 不需要掌握所有参数,不需要直接生成最终版本的图,哪怕用`AI`再修;
    5. ggplot的扩展包很多,不可能都完全学会,总体把握下,学习自己需要的;
    6. ......
    

    2. 绘图 geom_*

    2.1 一个连续型变量

    • geom_area()
    • geom_density(): 密度图
    • geom_dotplot(): Wilkinson点图
    • geom_frepoly(): 频数多边形
    • geom_histogram(): 直方图
    • geom_qq()

    2.2 一个离散型变量

    • geom_bar(): 柱状图/条形图

    2.3 两个连续型变量

    • geom_label()
    • geom_point(): 散点图、气泡图
    • geom_quantile()
    • geom_rug(): 边际地毯
    • geom_smooth()
    • geom_text(): 添加文本

    2.4 一个离散型,一个连续型

    • geom_col(): 条形图/柱状图
    • geom_boxplot(): 箱线图
    • geom_dotplot():
    • geom_violin(): 小提琴图

    2.5 两个离散型变量

    • geom_count()
    • geom_jitter()

    2.6 添加线

    • geom_segment()
    • geom_hline(): 添加横线;geom_vline(): 添加竖线;geom_abline(): 添加有角度的线

    2.7 误差

    • geom_crossbar()
    • geom_errorbar()
    • geom_linerange()
    • geom_pointrange()

    注意一些参数

    • position
      dodge: 避免重叠,并排放置
      fill: 堆叠图形元素并将高度标准为1
      identity: 不做任何调整
      jitter: 给点添加扰动避免重合
      stack: 将图形元素堆叠起来
      参考:ggplot2位置调整position
    • stat
    • fill, color
      注意区分
    • group

    3. 统计 stat_*

    • stat_smooth()
      method = lm: 添加线性回归线
    - `stat_bin()`、`stat_bin_2d()`、`stat_bin_hex()`
    - `stat_sum()`、`stat_count()`、`stat_summary()`、`stat_summary_bin()`、`stat_summary_hex()`、`stat_summary_2d()`
    - `stat_boxplot()、stat_density()`、`stat_ydensity()`、`stat_density_2d()`
    - `stat_ecdf()`、`stat_identity()`、`stat_unique()`、`stat_function()`、`stat_qq()`、`stat_ellipse()`、`stat_contour()`、`stat_quantile()`
    

    4. 标度scale_*

    4.1 离散型变量颜色填充scale_fill_*scale_color_*

    • scale_fill_discrete(), scale_colour_discrete(): 色轮周围均匀等距色(同hue)
      guide
      name
    • scale_fill_hue(), scale_colour_hue(): 色轮周围均匀等距色(discrete)
    • scale_fill_grey(), scale_colour_grey(): 灰度调色板,标度范围0 ~ 1(黑色 ~ 白色),默认0.2 ~ 0.8
      start = 0.7
      end = 0
    • scale_fill_brewer(), scale_colour_brewer(): ColorBrewer调色板
      palette = "Set3"
    • scale_fill_manual(), scale_colour_manual(): 自定义颜色
      values = c("red", "blue")
      values = c("#CC6666", "#7777DD")
      values = c(female="red", male="blue")
    • scale_alpha(): 透明度

    4.2 连续型变量颜色填充scale_fill_*scale_color_*

    • scale_fill_gradient(), scale_colour_gradient(): 两色渐变
      low = "black"
      high = "white"
    • scale_fill_gradient2(), scale_colour_gradient2(): 三色渐变
    • scale_fill_gradientn(), scale_colour_gradientn(): 等间隔的n种颜色的渐变色
      colours = c("", "", "", "")
    • scale_alpha()

    4.3 形状大小

    • scale_shape()
    • scale_shape_manual()
    • scale_size()
    • scale_size_area()
    • scale_linetype()
    • scale_radius()

    4.4 坐标相关

    • scale_x_discrete(), scale_y_discrete():
      limits =:
      breaks =: 设置刻度线的位置
      labels =: 修改刻度标签文本
    • scale_x_continuous(), scale_y_continuous()
    • scale_x_reverse(), scale_y_reverse()

    5. 坐标 coord_*

    • coord_fixed(): 设置x轴和y轴的缩放比例
      ratio = 1/2
    • coord_flip(): 翻转坐标轴
    • coord_cartesian():
      xlim =
      ylim =
      expand =
    • coord_map():
    • coord_quickmap():
    • coord_trans():
    • coord_polar(): 极坐标
    
    

    6. 主题 theme_*

    • theme_gray(): 默认主题
    • theme_bw()theme_classic()theme_void()
    - `theme_dark()`、`theme_light()`、`theme_linedraw()`、`theme_minimal()`
    
    • theme_set(): 设置当前R会话下的默认主题,如:theme_set(theme_bw())

    7. 分面 facet_*

    • facet_grid()
    • facet_wrap()

    8. 细节

    8.1

    • annotate()

    8.2 函数外设置

    • ggtitle()
    • xlab()
    • ylab()
    • xlim(): 设置连续型x坐标轴值域,scale_x_continuous()的简便写法
    • ylim(): 设置连续型y坐标轴值域,scale_y_continuous()的简便写法

    8.3 主题元素

    • theme()
    1. 文本元素,如,所有文本元素text = element_text()
      1.1 family:
      1.2 face: 字体
      1.3 colour: 文字颜色
      1.4 size: 字体大小
      1.5 hjust: 横向对齐
      1.6 vjust: 纵向对齐
      1.7 angle: 旋转角度
      1.8 lineheight: 行间距倍数
      注意:文本几何对象的文本属性与主题元素的基本一致。除了字体fontface
    其他文本元素:
    `plot.title`: 标题文本外观
    `legend.text`: 图例项文本的外观;`legend.title()`: 图例标题
    `axis.title`: 双轴标签的外观;`axis.title.x`: x轴、`axis.title.y`: y轴
    `axis.text`: 双轴刻度标签的外观;`axis.text.x`: x轴;`axis.text.y`: y轴
    `strip.text`: 双向分面标签的外观;`strip.text.x`: 横向;`strip.text.y`: 纵向
    

    在书上看到axis.ticksaxis.text一样,也用于双轴刻度标签外观的设置,但不知道为啥用了没效果。

    1. 矩形元素,如所有矩形元素rect = element_rect()
      2.1 colour:
      2.2 fill:
      2.3 size:
    其他矩形元素:
    `plot.background`: 整个图形的背景
    `panel.background`: 绘图区域背景;`panel.border`: 绘图区域边框
    `legend.background`: 图例的背景;`legend.key`: 图例边框
    `strip.background`: 分面标签的背景
    
    1. 线条元素,如所有线条元素line = element_line()
    其他线条元素:
    `axis.line`: 坐标轴线
    `panel.grid.major`: 主网格线;`panel.grid.major.x`: 纵向;`panel.grid.major.y`: 横向
    `panel.grid.minor`: 次网格线;`panel.grid.minor.x`: 纵向;`panel.grid.minor.y`: 横向
    
    1. legend.position = "right": 图例的位置,还可设置为"top""bottom""left"c(1, 0)这样的位置坐标
      设置为"none"移除所有图例
    2. legend.justification = c(1, 0)
      原图地址:https://henrywang.nl/ggplot2-theme-elements-demonstration/

    9. 其他重要的相关的包

    9.1 主题、颜色搭配

    ggsci
    cowplot

    9.2 多图拼接

    patchwork

    9.3 统计运算

    ggsignif

    相关文章

      网友评论

        本文标题:R | ggplot2

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