楼主: edward1212
965 9

[实际应用] ggline如何更改图例,增加标示 [推广有奖]

  • 2关注
  • 0粉丝

已卖:1份资源

硕士生

5%

还不是VIP/贵宾

-

威望
0
论坛币
35 个
通用积分
6.6784
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
7863 点
帖子
63
精华
0
在线时间
142 小时
注册时间
2020-2-15
最后登录
2025-12-7

楼主
edward1212 在职认证  发表于 2023-8-7 15:35:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如图所示,如何在均值处添加标示,以及更改图例的内容 Rplot.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:line Lin 如图所示

沙发
drunkfish69 发表于 2023-8-8 08:27:52
不太明白你想表达的意思和需求;只能玩猜猜看。给你一段示例参考参考吧。
  1. library(tidyverse)
  2. library(gcookbook)

  3. pd <- position_dodge(.1)
  4. ggplot(cabbage_exp, aes(Date, Weight, colour = Cultivar, group = Cultivar)) +
  5.   geom_errorbar(aes(ymin = Weight - se, ymax = Weight + se),
  6.     width = .2, size = .25, position = pd) +
  7.   geom_line(position = pd, linetype = 3) +
  8.   geom_point(position = pd, size = 2.5)
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
edward1212 在职认证  发表于 2023-8-8 08:35:34
好的,我试试

板凳
edward1212 在职认证  发表于 2023-8-8 09:24:25
drunkfish69 发表于 2023-8-8 08:27
不太明白你想表达的意思和需求;只能玩猜猜看。给你一段示例参考参考吧。
我用自己的数据试了一下,好像运行不起来,不知可否参考一下你的数据结构啊

报纸
drunkfish69 发表于 2023-8-8 09:27:18
你自己可以看啊,命令行输入cabbage_exp就看到数据了,来源于MASS里的cabbages

  1. > cabbages
  2.    Cult Date HeadWt VitC
  3. 1   c39  d16    2.5   51
  4. 2   c39  d16    2.2   55
  5. 3   c39  d16    3.1   45
  6. 4   c39  d16    4.3   42
  7. 5   c39  d16    2.5   53
  8. 6   c39  d16    4.3   50
  9. 7   c39  d16    3.8   50
  10. 8   c39  d16    4.3   52
  11. 9   c39  d16    1.7   56
  12. 10  c39  d16    3.1   49
  13. 11  c39  d20    3.0   65
  14. 12  c39  d20    2.8   52
  15. 13  c39  d20    2.8   41
  16. 14  c39  d20    2.7   51
  17. 15  c39  d20    2.6   41
  18. 16  c39  d20    2.8   45
  19. 17  c39  d20    2.6   51
  20. 18  c39  d20    2.6   45
  21. 19  c39  d20    2.6   61
  22. 20  c39  d20    3.5   42
  23. 21  c39  d21    2.2   54
  24. 22  c39  d21    1.8   59
  25. 23  c39  d21    1.6   66
  26. 24  c39  d21    2.1   54
复制代码

  1. > cabbage_exp  Cultivar Date Weight        sd  n         se1      c39  d16   3.18 0.9566144 10 0.302508032      c39  d20   2.80 0.2788867 10 0.088191713      c39  d21   2.74 0.9834181 10 0.310984104      c52  d16   2.26 0.4452215 10 0.140791415      c52  d20   3.11 0.7908505 10 0.250088876      c52  d21   1.47 0.2110819 10 0.06674995
复制代码

Rplot.png (33.95 KB)

Rplot.png

地板
edward1212 在职认证  发表于 2023-8-8 12:37:37
我想把c39和c52显示在图中标注的地方, 110750pprr080v1bxbxgiv.png

7
drunkfish69 发表于 2023-8-8 13:49:48
不太理解,标示红绿已经很清楚了,为什么还要每个点去标注?好吧,满足你‘无理’的要求。
  1. pd <- position_dodge(.1)
  2. ggplot(cabbage_exp, aes(Date, Weight, colour = Cultivar, group = Cultivar)) +
  3.   geom_errorbar(aes(ymin = Weight - se, ymax = Weight + se),
  4.     width = .2, size = .25, position = pd) +
  5.   geom_line(position = pd, linetype = 3) +
  6.   geom_point(position = pd, size = 2.5) +
  7.   geom_text(aes(label = Cultivar), size = 4, hjust = -.5)
复制代码

Rplot.png (35.82 KB)

Rplot.png

8
edward1212 在职认证  发表于 2023-8-8 21:06:21
[em17][em17]

9
drunkfish69 发表于 2023-8-9 09:34:01
ggpubr::ggline方便的地方就是不用去计算mean, sd, se...
ggline(..., add = 'mean_se', ...) 参数add可以直接选择所需的计算
  1. library(tidyverse)
  2. library(ggpubr)
  3. library(MASS)

  4. ggline(cabbages, 'Date', 'HeadWt',
  5.        group = 'Cult', color = 'Cult', palette = c('red', 'blue'),
  6.        linetype = 'Cult',
  7.        add = 'mean_se',
  8.        # label = 'Cult', label.select = list(top.up = 1),
  9.        position = position_dodge(.05))
复制代码

10
edward1212 在职认证  发表于 2023-8-10 13:56:09
我这边想显示所有的数据点,所以用的ggline,在add中加上了dotplot, 本来想用label函数,但是用了后每一个数据点都显示了label,而不是像在图中展示的那样,显示在均值处;不过前期想展现的分组数据比较多,所以想显示标签,现在感觉分开展示也能接受,所以标签显不显示也就不太在意了,不过,还是谢谢热心的老师

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-4 09:29