网易首页 > 网易号 > 正文 申请入驻

DeepSeek太赞了!如果导师让你学生信,不妨先试试这份ggplot2 可视化代码!

0
分享至

ggplot2 是 R 语言中最流行的数据可视化包之一,它基于图形语法理论,通过图层叠加的方式构建图形。ggplot2 的核心思想是将数据、映射、几何对象和美学属性分离,使图形构建更加灵活和模块化。这份DeepSeek提供的教程涵盖了ggplot2的基本用法,包括:①基本图形类型:散点图、折线图、柱状图、箱线图、直方图、密度图;②图形美化:颜色设置、标题标签、主题定制;③多图组合:分面和图形组合;④图形保存。

## 安装和加载必要的包
# install.packages(c("ggplot2", "RColorBrewer", "patchwork", "export"))
library(ggplot2)
library(RColorBrewer)
library(patchwork)

## 模拟数据集创建代码
set.seed(123)
n <- 200  # 总样本量

# 数据框创建
sim_data <- data.frame(
  group = rep(c("A", "B", "C"), length.out = n),  # 循环填充直到达到n
  category = rep(c("X", "Y"), length.out = n),     # 循环填充直到达到n
  value = c(rnorm(n/2, mean = 50, sd = 10),       # 前100个观测
            rnorm(n/2, mean = 70, sd = 15)),           # 后100个观测
  time = rep(1:10, each = n/10),                  # 10个时间点,每个20个观测
  score = runif(n, min = 0, max = 100)            # n个随机数
)

# 检查数据结构
str(sim_data)
head(sim_data)

## 1. 基本图形绘制
# 1.1 散点图
p1 <- ggplot(sim_data, aes(x = time, y = value)) + geom_point()
p2 <- ggplot(sim_data, aes(x = time, y = value, color = group)) + 
  geom_point(size = 3, alpha = 0.7)
p3 <- ggplot(sim_data, aes(x = time, y = value, color = group, shape = category)) +
  geom_point(size = 3)
p3

# 1.2 折线图
p4 <- ggplot(sim_data, aes(x = time, y = value)) + geom_line()
p5 <- ggplot(sim_data, aes(x = time, y = value, color = group)) + 
  geom_line(size = 1)
p6 <- ggplot(sim_data, aes(x = time, y = value, color = group)) +
  geom_line(size = 1) + geom_point(size = 2)
p6

# 1.3 柱状图
p7 <- ggplot(sim_data, aes(x = group)) + geom_bar()
p8 <- ggplot(sim_data, aes(x = group, fill = category)) +
  geom_bar(position = "dodge")
p9 <- ggplot(sim_data, aes(x = group, fill = category)) +
  geom_bar(position = "stack")
p10 <- ggplot(sim_data, aes(x = group, fill = category)) +
  geom_bar(position = "fill")
p10

# 1.4 箱线图
p11 <- ggplot(sim_data, aes(x = group, y = value)) + geom_boxplot()
p12 <- ggplot(sim_data, aes(x = group, y = value, fill = group)) +
  geom_boxplot(alpha = 0.7) + geom_jitter(width = 0.2, alpha = 0.5)
p12

# 1.5 直方图
p13 <- ggplot(sim_data, aes(x = value)) +
  geom_histogram(binwidth = 5, fill = "blue", color = "black")
p14 <- ggplot(sim_data, aes(x = value, fill = group)) +
  geom_histogram(binwidth = 5, alpha = 0.7, position = "identity")
p14

# 1.6 密度图
p15 <- ggplot(sim_data, aes(x = value)) +
  geom_density(fill = "blue", alpha = 0.5)
p16 <- ggplot(sim_data, aes(x = value, fill = group)) +
  geom_density(alpha = 0.5)
p16

## 2. 图形美化
# 2.1 颜色设置
display.brewer.all()
p17 <- ggplot(sim_data, aes(x = time, y = value, color = group)) +
  geom_point(size = 3) + scale_color_brewer(palette = "Set1")
p18 <- ggplot(sim_data, aes(x = time, y = value, color = group)) +
  geom_point(size = 3) + scale_color_manual(values = c("A" = "red", "B" = "blue", "C" = "green"))
p18

# 2.2 标题和标签
p19 <- ggplot(sim_data, aes(x = time, y = value, color = group)) +
  geom_point(size = 3) +
  labs(title = "Value over Time by Group",
       subtitle = "Simulated Data Example",
       x = "Time Point",
       y = "Measured Value",
       color = "Experimental\nGroup")
p19

# 2.3 主题设置
my_theme <- theme(
  plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
  axis.title = element_text(size = 12),
  axis.text = element_text(size = 10),
  legend.title = element_text(size = 12),
  legend.position = "bottom",
  panel.background = element_rect(fill = "white"),
  panel.grid.major = element_line(color = "grey90"),
  panel.grid.minor = element_blank()
)

p20 <- ggplot(sim_data, aes(x = time, y = value, color = group)) +
  geom_point(size = 3) + labs(title = "Custom Theme Example") + my_theme
p20

## 3. 多图组合

# 3.1 分面
p21 <- ggplot(sim_data, aes(x = time, y = value)) + geom_point() + facet_grid(group ~ .)
p22 <- ggplot(sim_data, aes(x = time, y = value)) + geom_point() + facet_grid(. ~ group)
p23 <- ggplot(sim_data, aes(x = time, y = value)) + geom_point() + facet_grid(category ~ group)
p24 <- ggplot(sim_data, aes(x = time, y = value)) + geom_point() + facet_wrap(~ group + category, ncol = 2)
p24

# 3.2 图形组合
p_box <- ggplot(sim_data, aes(x = group, y = value)) + geom_boxplot()
p_density <- ggplot(sim_data, aes(x = value, fill = group)) + geom_density(alpha = 0.5)

combined_plot1 <- p_box + p_density  # 并排排列
combined_plot2 <- p_box / p_density  # 上下排列
combined_plot3 <- (p_box + p_density) / p_box  # 复杂布局
combined_plot3

## 4. 综合示例
final_plot <- ggplot(sim_data, aes(x = time, y = value, color = group, shape = category)) +
  geom_point(size = 3, alpha = 0.8) +
  geom_smooth(method = "lm", se = FALSE) +
  scale_color_brewer(palette = "Dark2") +
  facet_wrap(~ group, ncol = 1) +
  labs(title = "Comprehensive Example Plot",
       subtitle = "Showing trends over time by group and category",
       x = "Time Point",
       y = "Measurement Value",
       color = "Group",
       shape = "Category") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
    plot.subtitle = element_text(size = 12, hjust = 0.5),
    legend.position = "bottom",
    strip.text = element_text(face = "bold")
  )
final_plot

## 5. 图形保存
ggsave("final_plot.png", final_plot, width = 10, height = 8, dpi = 300)

# 使用export包保存多种格式
graph2png("my_plot.png", width = 8, height = 6)
graph2pdf("my_plot.pdf", width = 8, height = 6)
graph2ppt("my_plot.pptx", width = 8, height = 6)

## 显示部分图形
print(p1)
print(p12)
print(p19)
print(final_plot)

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
欧阳夏丹大年初三独自品尝一桌子家乡菜,网友:一个人吃饭没意思

欧阳夏丹大年初三独自品尝一桌子家乡菜,网友:一个人吃饭没意思

梦仙境
2026-02-20 11:15:19
苏翊鸣日本教练:来中国时家人都问没拿奖牌会不会坐牢?这是偏见

苏翊鸣日本教练:来中国时家人都问没拿奖牌会不会坐牢?这是偏见

兰亭墨未干
2026-02-19 16:22:08
程潇韩国出道时身材好爆啊

程潇韩国出道时身材好爆啊

草莓解说体育
2026-02-20 15:00:17
韩媒道歉:林孝埈对不起!你是韩国最有天赋选手 本无罪却被封杀

韩媒道歉:林孝埈对不起!你是韩国最有天赋选手 本无罪却被封杀

念洲
2026-02-20 08:21:33
日本福冈发生持刀杀人未遂事件,中领馆再发提醒

日本福冈发生持刀杀人未遂事件,中领馆再发提醒

界面新闻
2026-02-20 13:06:23
TOP14位身高170以上的女神,有颜有灯有演技

TOP14位身高170以上的女神,有颜有灯有演技

素然追光
2026-01-02 02:45:02
欧盟外长卡拉斯就是个“笑话”,居然被中俄美三个大国同时拉黑!

欧盟外长卡拉斯就是个“笑话”,居然被中俄美三个大国同时拉黑!

达文西看世界
2026-02-20 14:30:30
没有邻居,我搬进“一梯一户”半年,真后悔没有早点买,太幸福了

没有邻居,我搬进“一梯一户”半年,真后悔没有早点买,太幸福了

室内设计师有料儿
2026-01-21 11:25:56
两女孩扶摔倒老人被索赔22万后续!完整视频曝光,老人动作有问题

两女孩扶摔倒老人被索赔22万后续!完整视频曝光,老人动作有问题

离离言几许
2026-02-20 10:12:45
被称为“中国最大忽悠”的贾跃亭,似乎要翻身了。

被称为“中国最大忽悠”的贾跃亭,似乎要翻身了。

流苏晚晴
2026-02-19 16:19:47
以色列已经告诉世界:日本若敢拥有核武器,美国并不会第一个翻脸

以色列已经告诉世界:日本若敢拥有核武器,美国并不会第一个翻脸

八斗小先生
2025-12-26 09:33:27
42岁王濛再破天花板!退役12年,再次让李琰和整个冰坛“沉默”了

42岁王濛再破天花板!退役12年,再次让李琰和整个冰坛“沉默”了

翰飞观事
2026-02-16 11:29:39
毛主席见到贺子珍哥哥,得知其行政待遇八级,大怒道:这是瞎胡闹

毛主席见到贺子珍哥哥,得知其行政待遇八级,大怒道:这是瞎胡闹

南书房
2026-02-17 11:35:05
做完手术人就废了,这5种手术不需要做,别让无知害了自己

做完手术人就废了,这5种手术不需要做,别让无知害了自己

医学科普汇
2026-01-29 06:25:03
港股AI应用、存储芯片股,集体爆发!

港股AI应用、存储芯片股,集体爆发!

证券时报e公司
2026-02-20 12:12:07
面相师傅:无论男女,眉心有竖纹,预示着你后半生的3种命运

面相师傅:无论男女,眉心有竖纹,预示着你后半生的3种命运

卡西莫多的故事
2026-02-02 11:46:25
特斯拉,把方向盘拆了

特斯拉,把方向盘拆了

放毒
2026-02-19 14:45:23
李谷一再婚嫁给肖卓能,岳父做客时,肖:您来了,我就有保护伞了

李谷一再婚嫁给肖卓能,岳父做客时,肖:您来了,我就有保护伞了

历史甄有趣
2026-02-20 12:25:05
年轻时是游泳健将,这大体格看着太舒服了,气血足大气漂亮!

年轻时是游泳健将,这大体格看着太舒服了,气血足大气漂亮!

健身狂人
2026-02-19 23:55:51
不用猜,女人真正的软肋,就这7个地方

不用猜,女人真正的软肋,就这7个地方

青苹果sht
2026-02-19 07:48:00
2026-02-20 15:31:00
芒果师兄 incentive-icons
芒果师兄
一起学习,共同成长,让生信助力科研。
492文章数 67关注度
往期回顾 全部

科技要闻

莫迪举手欢呼 两大AI掌门人却握拳尴尬对峙

头条要闻

牛弹琴:特朗普开了个前所未有的会 合影美国5人站中心

头条要闻

牛弹琴:特朗普开了个前所未有的会 合影美国5人站中心

体育要闻

宁忠岩4年从第7到摘金,刷新奥运纪录

娱乐要闻

苏翊鸣夺金朱易示爱,两人默契引热议

财经要闻

太疯狂!“顾客不问价直接出手”

汽车要闻

量产甲醇插混 吉利银河星耀6甲醇插混版申报图

态度原创

家居
本地
健康
公开课
军事航空

家居要闻

本真栖居 爱暖伴流年

本地新闻

春花齐放2026:《骏马奔腾迎新岁》

转头就晕的耳石症,能开车上班吗?

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

消息人士透露:美军赴黄海活动 解放军有效应对处置

无障碍浏览 进入关怀版