ggplot2参数简介

ggplot2 是一个 R 语言的绘图工具包,它使用基于图层的构建方式使得代码更加可读、灵活。下面是 ggplot2 常用参数的详细解释:

1. data:需要绘图的数据集,一般是一个数据框或类似结构的对象。
2. aes:用于映射数据到图形属性的参数,比如 x 轴和 y 轴、颜色、形状等。
3. geom:几何对象,用于描述数据在图形中呈现的形式,比如点、线、条形等。常用的有:geom_point、geom_line、geom_bar。
4. stat:统计变换,用于对数据进行统计处理,比如求均值、标准差等。常用的有:stat_summary、stat_bin。
5. scale:缩放对象,用于调整图形中的比例尺、颜色等。常用的有:scale_x_continuous、scale_y_continuous、scale_color_manual。
6. facet:分面对象,用于将图像分割成多个小区域,每个小区域可以看作一个子图。常用的有:facet_wrap、facet_grid。
7. theme:主题对象,用于控制图形的外观,比如背景颜色、字体大小等。常用的有:theme_bw、theme_light。

另外,ggplot2 还有一些其他的辅助参数,比如 labs、guides、annotation 等,用于在图像中添加标题、注释、图例等元素,使图形更加清晰明了。

部分参数如下:

1、data:

最基本的数据参数,直接指定数据框的名称

例如:

 `ggplot(data = data)`

2、aes:

x:表示要映射到 x 轴的数据变量。

y:表示要映射到 y 轴的数据变量。

alpha:表示要映射到透明度的数据变量。

color:表示要映射到颜色的数据变量,通常用作分组变量。

fill:表示要映射到填充颜色的数据变量,通常用于柱状图和堆积图中。

shape:表示要映射到数据点形状的数据变量。

size:表示要映射到数据点大小的数据变量。

linetype:表示要映射到线条类型的数据变量。

group:表示要映射到数据分组的数据变量,通常与多个数据点绘制在同一个图层时使用。

例如:

绘制散点图

ggplot(data = data, aes(x = x, y = y, color = group)) + geom_point()

绘制折线图

ggplot(data = data, aes(x = x, y = y, color = group)) + geom_line()

绘制柱状图

ggplot(data = data, aes(x = group, y = y, fill = group)) + geom_bar(stat = "identity")

绘制散点图,并将点的透明度映射到 x 值

ggplot(data = data, aes(x = x, y = y, alpha = x)) + geom_point()

绘制散点图,并将点的形状映射到 group 值

ggplot(data = data, aes(x = x, y = y, shape = group)) + geom_point(size = 5)

绘制散点图,并将点的大小映射到 y 值

ggplot(data = data, aes(x = x, y = y, size = y)) + geom_point()

绘制折线图,并将线条类型映射到 group 值

ggplot(data = data, aes(x = x, y = y, linetype = group)) + geom_line(

3、geom

geom_blank:在图形中插入空白元素。

geom_curve:用于绘制平滑曲线。

geom_path:用于绘制点之间的连线。

geom_polygon:用于绘制多边形。

geom_rect:用于绘制矩形。

geom_ribbon:用于绘制带状区域。

geom_abline:用于绘制直线。

geom_hline:用于绘制水平线。

geom_vline:用于绘制垂直线。

geom_segment:用于绘制线段。

geom_spoke:用于绘制指向某一方向的线段。

geom_area:用于绘制面积图。

geom_density:用于绘制密度图。

geom_dotplot:用于绘制点图。

geom_freqpoly:用于绘制频数多边形图。

geom_histogram:用于绘制直方图。

geom_qq:用于绘制QQ图。

geom_bar:用于绘制柱状图。

geom_label:用于添加文本标签。

geom_jitter:用于对数据进行抖动,避免重叠。

geom_point:用于绘制散点图。

geom_quantile:用于绘制分位数图。

geom_rug:用于在坐标轴上绘制小竖条,表示数据的分布情况。

geom_smooth:用于添加平滑曲线或回归线。

geom_text:用于绘制文本。

geom_col:用于绘制堆积柱状图。

geom_boxplot:用于绘制箱线图。

geom_violin:用于绘制小提琴图。

geom_count:用于计算和绘制每个组中的观测值计数。

geom_contour:用于绘制等高线图。

geom_bin2d:用于绘制二维直方图。

geom_density2d:用于绘制二维密度图。

geom_hex:用于绘制六边形直方图。

geom_line:用于绘制折线图。

geom_step:用于绘制阶梯图。

geom_crossbar:用于绘制带有上下界的线段。

geom_errorbar:用于绘制误差棒。

geom_linerange:用于绘制带有最小值和最大值的线段。

geom_pointrange:用于绘制带有点和最小值最大值的线段。

geom_map:用于绘制地图。

geom_raster:用于绘制位图。

geom_tile:用于绘制矩形区域。

示例:

空白图

ggplot(data, aes(x = x, y = y)) + geom_blank()

点图

ggplot(data, aes(x = x, y = y)) + geom_point()

折线图/路径图

ggplot(data, aes(x = x, y = y)) + geom_line()

条形图/柱状图/堆积图

ggplot(data, aes(x = x, y = y)) + geom_bar(stat = "identity")

面积图

ggplot(data, aes(x = x, y = y)) + geom_area()

直方图/密度图

ggplot(data, aes(x = y)) + geom_histogram(binwidth = 0.5, color = "black", fill = "white")

盒须图/小提琴图

ggplot(data, aes(x = x, y = y)) + geom_boxplot()

线性回归模型拟合图/平滑曲线图

ggplot(data, aes(x = x, y = y)) + geom_smooth(method = "lm")

4、stat

stat_bin:创建直方图,将数据划分为若干个离散的区间并计算每个区间的数量。

stat_count:计算每个分组或每个唯一值的数量。

stat_density:绘制核密度估计图,表示连续变量的概率密度分布。

stat_bin_2d:创建二维直方图,用于显示两个变量之间的关系。

stat_bin_hex:创建六边形直方图,用于显示两个变量之间的关系,分布类似于地图上的蜂窝。

stat_density_2d:绘制二维核密度估计图,表示两个连续变量的概率密度分布。

stat_ellipse:绘制椭圆,展示二维连续变量之间的相关关系。

stat_contour:绘制等高线图,用于显示二维连续变量的密度分布。

stat_summary_hex:与 stat_bin_hex 类似,但是对数据进行汇总处理,用于显示数据总体特征。

stat_summary_2d:将数据汇总到网格中,并为每个单元格绘制一个点或标记,用于显示数据总体特征。

stat_boxplot:绘制箱线图,显示一个连续变量的五个重要统计量,包括最小值、第一四分位数、中位数、第三四分位数和最大值,以及异常值。

stat_ydensity:绘制沿 y 轴的密度图,即将数据在 y 轴上按顺序排列,并为每个 y 值绘制一条密度曲线。

stat_ecdf:绘制经验累积分布函数图,表示一个变量的累积分布函数。

stat_quantile:绘制分位数图,展示数据的分布情况和集中趋势。

stat_smooth:绘制平滑曲线,用于显示连续变量的趋势线。

stat_function:绘制函数图形,将给定函数的输出绘制为连续线条。

stat_identity:不做任何操作,仅绘制原始数据。

stat_qq:绘制正态概率图(Q-Q plot),用于检查数据是否符合正态分布。

stat_sum:将数据汇总到一个点或标记上,用于显示数据总体特征。

stat_summary:与 stat_sum 类似,但可以自定义汇总函数,例如 sum、mean 或 median。

stat_summary_bin:与 stat_summary 类似,但是将数据划分为若干个离散区间并对每个区间进行汇总。

stat_unique:对唯一值进行计数,并将它们绘制为点或标记。

5、scale

scale_fill_manual():手动设置离散型变量填充色,可以为每个取值指定一个特定的颜色。

scale_*_continuous():设置连续型变量的比例尺,可以指定最小值、最大值和中间点位置。

scale_*_identity():直接使用数据中存储的原始值来设置比例尺,适用于已经进行了数据处理和缩放的图表。

scale_*_manual():手动设置比例尺,可以为每个取值指定一个具体的属性值,例如颜色、大小、形状等。

scale_date() 和 scale_datetime():用于设置日期和时间类型的坐标轴,可以指定日期格式、刻度大小和标签方向等属性。

scale_x_log10():设置对数型 x 轴比例尺。

scale_x_reverse():翻转 x 轴方向。

scale_x_sqrt():设置平方根型 x 轴比例尺。

scale_*_brewer():使用 RColorBrewer 包中提供的调色板来设置颜色,可以选择不同的颜色主题。

scale_fill_grey():使用灰度色盘来设置离散型变量填充色。

scale_fill_distiller():使用色彩转换工具来设置离散型变量填充色,可以根据数据分布选择不同的颜色。

scale_fill_gradient():设置连续型变量的填充色,可以指定起始颜色和结束颜色。

scale_fill_gradient2():设置双色渐变调色板,可以指定起始颜色、中间点颜色和结束颜色。

scale_fill_gradientn():设置多色渐变调色板,可以选择 k-means 算法或分位数算法来进行聚类分组。

scale_shape() 和 scale_shape_manual():用于设置点的形状,可以选择圆形、三角形、正方形等多种形状。

scale_radius() 和 scale_size_area():用于设置点或标记的大小,可以指定半径或面积大小。

scale_size():设置点或标记的大小,可以指定具体的数值大小。

6、coord

coord_cartesian():默认的笛卡尔坐标系,可以设置 x 和 y 轴的范围。

coord_flip():将 x 和 y 轴交换,使得原来的横坐标变成纵坐标,反之亦然。

coord_polar():使用极坐标系绘制图形,可以用 angle 和 radius 分别表示角度和半径。

coord_fixed():设置坐标系的纵横比例,即 x 轴和 y 轴的单位长度比例。

coord_map():根据地图数据绘制地图图表,用于制作地理信息系统或地图可视化应用。

coord_trans():对坐标轴进行变换,例如对数、指数、倒数等变换,可用于处理数据分布不均匀或非线性的情形。

coord_3d():用于绘制三维图形,支持多种投影方式和视角调整。

coord_sf():用于绘制地理空间数据,支持多种地图投影方式。

coord_equal():用于设置坐标轴比例相等,即 x 和 y 轴的刻度长度相同。该函数适用于绘制等比例缩放的图形。

7、theme

theme_bw():白色背景、黑色主题,适合绘制黑白或单色调图形。

theme_classic():类似于基本主题,但去除了网格线和阴影效果,适合绘制传统的散点图和折线图等。

theme_minimal():最小化注释和装饰元素,只显示数据和坐标轴,适合绘制简单的图表。

theme_dark():黑暗主题,适合绘制夜间场景或科幻风格的图表。

theme_light():浅色主题,与 dark 相对应,适合绘制日间场景或经典风格的图表。

theme_void():完全没有主题,只有坐标轴和数据,适合自定义主题样式或无主题需求的情况。

8、facet

facet_wrap():绘制横向分面图

ggplot(mpg, aes(displ, hwy)) +

  geom_point() +

  facet_wrap(~ manufacturer, ncol = 3)

facet_grid():绘制二维分面图

ggplot(mtcars, aes(x = wt, y = mpg)) +

  geom_point() +

  facet_grid(cyl ~ .)

facet_grid():绘制垂直堆叠式分面图

ggplot(mtcars, aes(x = wt, y = mpg)) +

  geom_point() +

  facet_grid(. ~ cyl)

9、labs

x:横轴标签

y:纵轴标签

title:标题

subtitle:子标题文字内容

caption:图表底部的标注说明文字内容

tag:图表顶部的标签文字内容

sep:标题和子标题之间的分隔符,默认为 " \u2014 "。

label:添加标记来引用图表。

parse:默认为 FALSE,标量值可以通过下划线 _ 插入换行符 "\n" 来实现多行标题。如果设置为 TRUE,则可以使用 ggplot2 的解析器来解析文本字符串(仅限字符向量)。

10、guides() 函数用于修改图表的图例(legend)元素

legend.position:设置图例的位置,可选值包括 "right"、"top"、"bottom"、"left" 或者两个数值向量,分别表示 x 和 y 轴的偏移量。

ggplot(mpg, aes(x = displ, y = hwy, color = class)) + geom_point() + guides(color = guide_legend(title = "车辆类别"), position = "right")

guide_legend():设置图例的属性,例如标题、标签颜色、形状等。我们可以通过传入不同的参数值来调整图例的外观和布局。例如,可以通过下面的代码修改图例的标题和标签颜色。

ggplot(mpg, aes(x = displ, y = hwy, color = class)) + geom_point() + guides(color = guide_legend(title = "车辆类别", label.color = "blue"))

guide_colorbar():设置渐变色条(colorbar)的属性,例如标题、刻度线、颜色等。我们可以通过传入不同的参数值来调整渐变色条的外观和布局。例如,可以通过下面的代码修改渐变色条的标题和颜色范围。

ggplot(faithfuld, aes(waiting, eruptions, fill = density)) + geom_tile() + scale_fill_gradient(low = "blue", high = "red") + guides(fill = guide_colorbar(title = "密度", barwidth = 20))

11、annotation() 函数用于在图表中添加注释(annotation)元素,例如文本、箭头、线条等

"text":添加文本注释元素,通常用于标注具体数值或名称。

ggplot(mtcars, aes(x = wt, y = mpg)) +

  geom_point() +

  annotation_custom(

    grob = textGrob("数据点示例", gp = gpar(col = "red", fontsize = 14)),

    xmin = 4,

    xmax = 5,

    ymin = 30,

    ymax = 35

  )

上述代码创建了一个散点图,其中用不同的点区分不同的汽车型号,通过 annotation() 函数设置了一个红色的文本注释元素表示数据点示例,位置位于 x 轴范围为 [4,5],y 轴范围为 [30,35] 的区域内。

"segment":添加线段注释元素,通常用于连接两个或多个点或区域。

ggplot(mtcars, aes(x = wt, y = mpg)) +

  geom_point() +

  annotation_custom(

    grob = linesGrob(gp = gpar(col = "red", lty = "dashed")),

    xmin = 4,

    xmax = 5,

    ymin = 30,

    ymax = 35

  )

上述代码创建了一个散点图,其中用不同的点区分不同的汽车型号,通过 annotation() 函数设置了一个虚线注释元素表示连接 x 轴范围为 [4,5],y 轴范围为 [30,35] 的两个点。

"arrow":添加箭头注释元素,通常用于标注方向或指向性信息。

ggplot(mtcars, aes(x = wt, y = mpg)) +

  geom_point() +

  annotation_custom(

    grob = arrowGrob(angle = 45, gp = gpar(col = "blue", lwd = 2)),

    xmin = 3,

    xmax = 4,

    ymin = 10,

    ymax = 15

  )

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值