# # 代码主要功能
# 这段代码的主要功能是从一个数据文件中读取地理和生态数据,并使用这些数据绘制一幅世界地图,展示不同栖息地类型及其对应的样本数量。具体步骤如下:
# 1. **加载必要的库**:
# - `maps`: 用于绘制地图。
# - `ggplot2`: 用于数据可视化。
# - `dplyr`: 用于数据操作和处理。
# 2. **读取数据**:
# - 从文本文件 `map-full.txt` 中读取数据,并将其存储在数据框 `data` 中。
# - 使用 `View(data)` 查看数据框的内容,使用 `names(data)` 显示列名。
# - 使用 `str(data)` 查看数据框的结构,包括每一列的数据类型。
# 3. **数据写入与读取**:
# - 将数据框保存为 CSV 文件 `data.csv`。
# - 再次读取 CSV 文件,确保数据格式正确。
# 4. **因子处理**:
# - 将 `habitat` 列转换为因子,并定义其水平,以便在绘图中使用。
# 5. **地图数据获取**:
# - 获取世界地图数据,并存储在变量 `world` 中。
# 6. **创建地图绘图对象**:
# - 使用 `ggplot` 创建绘图对象。
# - `geom_polygon` 绘制世界地图,使用灰色填充。
# - `geom_point` 根据 `data` 数据绘制点,点的颜色和大小分别代表栖息地类型和样本数量,设置点的透明度。
# 7. **自定义绘图参数**:
# - 使用 `scale_fill_manual` 自定义栖息地的填充颜色。
# - 自定义 x 轴和 y 轴的范围。
# - 使用 `theme_void()` 设置空主题,以便去掉不必要的坐标轴和网格线。
# 8. **显示绘制的地图**:
# - 将绘制好的地图对象 `p` 显示出来。
# 9. **保存地图**:
# - 将地图保存为 PDF 文件 `map-full.pdf`,指定宽度和高度。
# 这段代码综合了数据处理和可视化,能够直观地展示不同栖息地类型在地理空间上的分布情况。
# 加载必要的库
library(maps) # 地图绘制
library(ggplot2) # 数据可视化
library(dplyr) # 数据操作
# 读取数据
data <- read.delim("map-full.txt", header = TRUE)
View(data) # 查看数据框内容
names(data) # 显示数据框列名
## habitat: 栖息地的类型,表示样本或观察点所在的生态环境
# latitude: 纬度,地理位置的南北位置,用于定位样本
# longitude: 经度,地理位置的东西位置,与纬度一起精确定位
# number: 数量,在特定栖息地中观察到的样本数量或个体数量
str(data)
# 写出数据框为 CSV 文件
write.csv(data, file = "data.csv")
# 读取 CSV 文件到 R 中
data <- read.csv("data.csv")
# 将 habitat 列转换为因子,并设置因子的水平
data$habitat <- factor(data$habitat, levels = c(
'Animal husbandry', # 养殖
'Food', # 食物
'Human', # 人类
'Soil', # 土壤
'Surface water', # 表面水
'Aquatic organism', # 水生生物
'Sediment', # 沉积物
'Wild animal', # 野生动物
'Plant', # 植物
'Insect', # 昆虫
'Seawater' # 海水
))
View(data)
# 获取世界地图数据
world <- map_data("world")
# 创建地图绘图对象
p <- ggplot() +
# 绘制世界地图
geom_polygon(data = world,
aes(x = long,
y = lat,
group = group),
fill = "#dedede") + # 地图填充颜色
# 绘制数据点
geom_point(data = data, aes(x = longitude,
y = latitude,
fill = habitat,
size = number),
shape = 21, # 点的形状
alpha = 0.6) + # 点的透明度
# 自定义填充色
scale_fill_manual(values = c('#BDB9DA', "#80B0D2", '#8DD2C6', '#FA8071',
"#B3DE69", "#D9D9D9", "#CCEBC5", "#FBCDE4",
"#FCB461", "#BB80BC", "#FFEC6D")) +
# 自定义 y 轴
scale_y_continuous(expand = expansion(mult = c(0, 0))) +
# 自定义 x 轴
scale_x_continuous(expand = expansion(add = c(0, 0))) +
# 使用空主题
theme_void()
# 显示绘制的地图
p
# 将地图保存为 PDF 文件
ggsave('map-full.pdf',
p,
width = 11, # PDF 宽度
height = 5) # PDF 高度
参考资料:
文献《Prophage-encoded antibiotic resistance genes are enriched in human-impacted environments》
数据及代码
https://zenodo.org/records/13301199