如何用R语言ggplot2画箱线图


前言

在这里插入图片描述


一、数据集

数据下载链接见文章顶部

数据:

在这里插入图片描述

library(readxl)

data <- read_excel("fig2_violin.xlsx", sheet = "Sheet1")

二、ggplot2画图

1、全部代码

library(ggplot2)

pic =
    ggplot(data, aes(x = Species, y = Production, fill = Species, color = Species)) +
    geom_boxplot(width = 0.8, alpha = 0.5, lwd = 1) +
    # 主题设置
    theme_classic() +
	theme(plot.margin = margin(0.1, 0.1, 0.1, 1.3, "cm")) +
	# 轴设置
	xlab("") +
	coord_cartesian(ylim = c(0,2500)) +
    theme(axis.text = element_text(size = 18)) +
    theme(axis.text.x = element_text(angle = 30, hjust = 1)) +
    theme(axis.title = element_text(size = 20)) +
    theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0, unit = "pt"))) +
	# 图例设置
    theme(legend.position = "none") + 
    # 颜色
    scale_fill_manual(values=c('#fc8452', '#91cc75', '#ee6666', '#fac858', '#3ba272', '#73c0de', '#ea7ccc')) +
    scale_color_manual(values=c('#fc8452', '#91cc75', '#ee6666', '#fac858', '#3ba272', '#73c0de', '#ea7ccc'))
    

jpeg(filename = "test2.png", width = 4300, height = 3000, res = 600, quality = 100)
pic
dev.off()

2、细节拆分

1)导包

library(ggplot2)

2)创建图形对象

pic =
    ggplot(data, aes(x = Species, y = Production, fill = Species, color = Species)) +
    geom_boxplot(width = 0.8, alpha = 0.5, lwd = 1)
  • 设置 x 轴为物种,y 轴为产量,按物种类型对边框(color)和内部(fill)着色。
  • geom_boxplot 指定画箱线图。
    width = 0.8:设置每一个箱状矩形的宽度。值为0.8表示相对于默认宽度的80%。
    alpha = 0.5:设置填充颜色透明度。值为0.5表示50%的透明度,即半透明效果。
    lwd = 1:设置箱状矩形边框的线宽。值为1表示线的宽度为1个单位(毫米)。

3)主题设置

theme_classic() +
theme(plot.margin = margin(0.1, 0.1, 0.1, 1.3, "cm"))
  • theme_classic 指定经典主题。
  • 设置绘图区域的边距。margin 函数中的参数分别表示上、右、下、左四个方向的边距大小,单位为厘米(“cm”)。在这个例子中,上边距、右边距、下边距都是0.1厘米,左边距是1.3厘米。因为x轴刻度的文字比较长,如果不加宽左边距会有一部分被截断。

4)轴设置

xlab("") +
coord_cartesian(ylim = c(0,2500)) +
theme(axis.text = element_text(size = 18)) +
theme(axis.text.x = element_text(angle = 30, hjust = 1)) +
theme(axis.title = element_text(size = 20)) +
theme(axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0, unit = "pt")))
  • xlab 设置 x 轴标题为空。
  • coord_cartesian(ylim = c(0,2500)) 用于限制y轴坐标轴的范围,只显示从0到2500的区间。这意味着即使数据中存在超出这个范围的值,图形也只会显示在这个范围内。该函数与ylim(0, 2500)的区别是:ylim 函数会过滤掉超出范围的数据点。当使用这个函数绘制箱线图时,会仅用 y∈[0,2500] 的点绘制。而 coord_cartesian 函数会用所有的点绘制,但只展示 y∈[0,2500] 区间的图像。
  • 设置轴刻度字号18,其中对于 x 轴:
    angle = 30:设置刻度文本的旋转角度为30度,当文本较长时便于在图上显示。
    hjust = 1:设置 x 轴文本的水平对齐方式。值为1表示右对齐,即文本的右侧与轴线对齐。
  • 设置轴标题字号20,其中对于 y 轴:
    margin 函数指定了 y 轴标题上、右、下、左四个方向的外边距大小,单位为 “pt”(points)。在这个例子中,上边距为0,右边距为10,下边距为0,左边距为0。防止 y 轴标题与刻度贴的太紧影响美观。

5)图例设置

theme(legend.position = "none")
  • 将图例位置设为 “none”,即不显示图例。
    除此之外,还可以通过 guides 函数实现相同效果:去掉边框颜色和填充颜色的图例。
guides(color = "none", fill = "none") 

6)散点颜色

scale_fill_manual(values=c('#fc8452', '#91cc75', '#ee6666', '#fac858', '#3ba272', '#73c0de', '#ea7ccc')) +
scale_color_manual(values=c('#fc8452', '#91cc75', '#ee6666', '#fac858', '#3ba272', '#73c0de', '#ea7ccc'))
  • 分别为每个物种类别设置填充颜色和边框颜色。

7)保存图片

jpeg(filename = "test2.png", width = 4300, height = 3000, res = 600, quality = 100)
pic
dev.off()
  • jpeg 函数打开了一个JPEG设备,设定了图片的保存路径为 “test2.png”,图片的宽度为4300像素,高度为3000像素,分辨率为600 dpi,图片质量为100%。
  • pic 是之前生成的图形对象。
  • dev.off() 关闭了之前打开的图形设备,保存了图片到指定路径。这是在完成图片保存后必须执行的步骤,以确保保存的图片被正确地输出。
  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值