楼主: xingzhaoh
5147 7

[问答] 两组数据,如何画出这样的的图 [推广有奖]

副教授

20%

还不是VIP/贵宾

-

威望
0
论坛币
3407 个
通用积分
13.9638
学术水平
5 点
热心指数
6 点
信用等级
3 点
经验
583 点
帖子
421
精华
0
在线时间
703 小时
注册时间
2011-9-14
最后登录
2023-11-17

楼主
xingzhaoh 发表于 2015-4-28 15:32:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
两组数据,如何画出这样的的图
哪位大侠给个提示或者详细的例子
NBCK3M4(DWY$`VSDJE}@G%8.png
二维码

扫码加我 拉你入群

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

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

关键词:如何

回帖推荐

jgchen1966 发表于4楼  查看完整内容

用ggplot2 很容易!! 如 df0

hugebear 发表于7楼  查看完整内容

用基础的graphics系统,比较烦,但可以看到一些函数的用法,示图B(图A的技巧性不如图B)

rebornxldeng 发表于2楼  查看完整内容

红色部分应该是某个分组的组内分布. 黄色部分应该是比红色组高一级的租,它包含了用红色部分体现的组. 两组数据用同样的x轴单位刻度应该就可以了.

本帖被以下文库推荐

沙发
rebornxldeng 发表于 2015-4-28 15:43:19
红色部分应该是某个分组的组内分布.
黄色部分应该是比红色组高一级的租,它包含了用红色部分体现的组.
两组数据用同样的x轴单位刻度应该就可以了.

藤椅
xingzhaoh 发表于 2015-4-28 16:40:33
rebornxldeng 发表于 2015-4-28 15:43
红色部分应该是某个分组的组内分布.
黄色部分应该是比红色组高一级的租,它包含了用红色部分体现的组.
两组 ...
能说的具体点,给个有代码的例子吗

板凳
jgchen1966 发表于 2015-4-28 18:58:09
用ggplot2 很容易!!

df0<-data.frame(x1=rnom(500,m=0,sd=1),x2=rnorm(500,m=3,sd=3))
df<-gather(df0)
ggplot(df,aes(x=value,fill=key))+geom_density()

报纸
jgchen1966 发表于 2015-4-28 18:59:16
xingzhaoh 发表于 2015-4-28 16:40
能说的具体点,给个有代码的例子吗
另:library(tidyr)

地板
jgchen1966 发表于 2015-4-28 18:59:22
xingzhaoh 发表于 2015-4-28 16:40
能说的具体点,给个有代码的例子吗
另:library(tidyr)

7
hugebear 发表于 2015-4-28 23:51:39
用基础的graphics系统,比较烦,但可以看到一些函数的用法,示图B(图A的技巧性不如图B)
  1. group1center <- 2
  2. group2center <- 4
  3. group1sd <- 1
  4. group2sd <- 2
  5. x1 <- seq(from = group1center - 2 * group1sd, to = group1center + 2 * group1sd, length = 1000)
  6. y1 <- dnorm(x1, group1center, group1sd)
  7. x2 <- seq(from = group2center - 2 * group2sd, to = group2center + 2 * group2sd, length = 1000)
  8. y2 <- dnorm(x2, group2center, group2sd)
  9. y2.plot <- ifelse(y2 < min(y1), min(y1), y2)

  10. par(mar = c(1.5, 1.5, 1, 1) + 0.1)
  11. plot(c(x1, x2), c(y1, y2), type = "n", axes = F, xlab = "", ylab = "", ylim = c(min(y1), max(y1)))
  12. abline(h = min(y1), lwd = 2)
  13. abline(v = min(x1), lwd = 2)
  14. mtext("genetic distance", side = 1, line = 0.1)
  15. mtext("#", side = 2, line = 0.1)
  16. polygon(x = c(sort(x1), rev(sort(x1))), y = c(rep(min(y1), 1000), rev(y1[order(x1)])), col = "red")
  17. polygon(x = c(sort(x2), rev(sort(x2))), y = c(rep(min(y1), 1000), rev(y2.plot[order(x2)])), col = "yellow")
  18. # plot the overlap region
  19. x.overlap <- seq(min(x1), max(x1), length = 1000)
  20. ygroup1 <- dnorm(x.overlap, group1center, group1sd)
  21. ygroup2 <- dnorm(x.overlap, group2center, group2sd)
  22. y.overlap <- ifelse(ygroup2 < ygroup1, ygroup2, ygroup1)
  23. y.overlap.plot <- ifelse(y.overlap < min(y1), min(y1), y.overlap)
  24. polygon(x = c(sort(x.overlap), rev(sort(x.overlap))), y = c(rep(min(y1), 1000), rev(y.overlap.plot[order(x.overlap)])), col = "orange")
  25. lines(x1, y1, lwd = 2)
  26. lines(x2, y2.plot, lwd = 2)
  27. text(x = 4, y = max(y1)/1.5, "overlap")
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

8
xingzhaoh 发表于 2015-5-1 07:28:35
hugebear 发表于 2015-4-28 23:51
用基础的graphics系统,比较烦,但可以看到一些函数的用法,示图B(图A的技巧性不如图B)
高手呀,学习了

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-20 07:24