R语言 使用ggplot2绘制箱形图
在这篇文章中,我们将使用ggplot2包在R编程语言中创建一个具有各种功能的Bowxplot。
对于数据的分布,你可能需要比中心趋势值(中位数、平均值、模式)更多的信息。为了分析数据的可变性,你需要知道数据的分散程度。那么,箱形图是一个说明数据中数值分布的图形。箱形图通常被用来以标准的方式展示数据的分布,呈现五个摘要值。下面的列表总结了最小值、Q1(第一四分位数)、中位数、Q3(第三四分位数)、和最大值。 总结这些数值可以为我们提供关于离群值和它们的信息。
在ggplot2中,geom_boxplot()被用来创建一个boxplot。
语法: geom_boxplot( mapping = NULL, data = NULL, stat = "identity", position = "identity", ..., outlier.color = NULL, outlier.color = NULL, outlier.fill = NULL, outlier.shape = 19, outlier.size = 1.5, notch = FALSE,na.rm = FALSE, show. legend = FALSE, inherit.aes = FALSE)
使用中的数据集 :Crop_recommendation
让我们首先创建一个常规的boxplot,为此我们首先要导入所有需要的库和使用中的数据集。然后在ggplot()函数中简单地把所有要绘制的属性和geom_boxplot放在一起。
例子
输出:
将均值添加到boxplot中
均值也可以被添加到boxplot中,为此我们必须在stat_summary()中指定我们正在使用的函数。这个函数用于添加新的摘要值,并将这些摘要值添加到图中。通过使用这个函数,你不需要在绘图前计算均值。
语法
stat_summary( fun, geom)
例子
输出
现在让我们来讨论使用theme()函数在Bexplot中的图例位置。我们可以将图例的位置改为顶部或底部,也可以删除boxplot中的图例位置。可以通过使用主题来定制绘图组件,如标题、标签、字体、背景、网格线和图例。图形可以通过使用主题来定制。你可以使用theme()方法修改单个绘图的主题,也可以通过调用theme_update()方法修改活动主题,这将影响所有后续的绘图。
语法
theme( line, rect, text, title, aspect.ratio, axis.title, axis.title.x, axis.title.x.top, axis.title.x.bottom, axis.title.y, axis.title.y.left, axis.title.y.right, axis.text, axis.text.x, axis.text.x.top, axis.text.x.bottom, axis.text.y, axis.text.y.left, ......, validate = TRUE)
在这个函数中,如果你将legend.position参数设置为top或bottom,那么位置将改变。
例子
输出
在R中使用ggplot2的水平博弈图
使用 coord_flip()函数,也可以将博列表水平放置。这个函数只是切换x轴和y轴。
例子
输出
改变箱形图线的颜色
1) 默认
使用 color=label 命令,为条形图的轮廓添加颜色。
语法
color=label
例子
输出
2) 手动
- 使用自定义调色板: 要使用自定义调色板,请使用scale_color_manual()函数,并在该函数中为每个boxplot提供轮廓颜色。
例子
输出
- 使用brewer调色板: 你可以用brewer调色板改变boxplot的轮廓颜色。要做到这一点,你只需要使用scale_color_brewer()函数并在该函数中设置调色板参数。
语法
scale_color_brewer(palette)
例子
输出
- 使用灰度: 为了使用灰度调色板,你需要使用scale_color_grey()函数,并在其中加入theme_classic()函数。
例子
输出
用颜色填充boxplot
1) 默认情况: 如果要用你选择的颜色填充boxplot,你可以使用fill属性命令在geom_boxplot()函数中添加颜色。填充会在geom_boxplot( )下面,因为在这种情况下它是可变的。
语法
fill=’color’
例子
输出
对于默认情况下填充boxplot的颜色,你只需要在ggplot()的aes()函数中加入fill属性。填充将在 ggplot( )下的 aes( )内,因为在这种情况下它是可变的。
语法
fill=label
例子
输出
2) 手动: 如果你想手动改变boxplot的颜色,那么你可以根据你的选择使用scale_fill_manual(), scale_fill_brewer()和scale_fill_grey()三个函数。
- 使用自定义调色板: 要使用自定义调色板,可以使用scale_fill_manual()函数和颜色值作为参数。
语法
scale_fill_manual(values)
例子
输出
- 使用酿酒师调色板: 要使用来自RColorBrewer包的酿酒师调色板scale_fill_brewer()和调色板作为参数。
语法
scale_fill_brewer(palette)
例子
输出
- 使用灰度: 使用scale_fill_grey()和theme_classic()来为boxplots填充灰度的颜色。
例子
输出
在boxplots中添加抖动器
抖动对于处理离散数据集引起的过度绘图问题非常有用。你也可以调整抖动的位置,为此你只需要在geom_jitter()中设置位置属性。你也可以通过使用ggplot jitter中的size和shape参数来改变点的形状和大小。
语法
geom_jitter(mapping = NULL, data = NULL, stat = "identity", position = "jitter", ..., width = NULL, height = NULL, na.rm = FALSE, show.legend = NA, inherit.ais = TRUE)
例子
输出
缺口箱形图
对于添加缺口的boxplot,你只需要在geom_boxplot()中设置缺口属性为TRUE。
例子
输出