请选择 进入手机版 | 继续访问电脑版
楼主: dxystata
1510 10

[问答] 50论坛币求助ggplot2如何画这样的图 [推广有奖]

版主

大师

34%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
182013 个
通用积分
15204.8228
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
290584 点
帖子
5363
精华
1
在线时间
13469 小时
注册时间
2006-6-21
最后登录
2024-4-18

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

dxystata 发表于 2018-8-30 15:22:39 |显示全部楼层 |坛友微信交流群
1论坛币
2018-08-30_151512.jpg

最佳答案

allain 查看完整内容

然后作图,需加载ggplot2包
关键词:ggplot2 gplot 50论坛币 0论坛币 plot
allain 在职认证  发表于 2018-8-30 15:22:40 |显示全部楼层 |坛友微信交流群
然后作图,需加载ggplot2包
  1. ggplot(df) +
  2.   geom_tile(aes(x = x,y = y,fill = fill),
  3.             color = "white") +
  4.   geom_text(aes(x = x,y = y,label = fill)) +
  5.   scale_y_reverse() +
  6.   scale_fill_manual(values = c("#FF0000","#458B00","#CD9B1D")) +
  7.   scale_x_continuous(position = "top") +
  8.   theme_classic() +
  9.   theme(legend.position = "none")
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 60 + 2 + 2 + 2 精彩帖子

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

使用道具

allain 在职认证  发表于 2018-8-31 00:26:20 |显示全部楼层 |坛友微信交流群
首先生成数据
  1. df <- data.frame(x = c(seq(1:30),
  2.                        c(1,seq(2,14),seq(15,30)),
  3.                        c(seq(2,5),seq(6,29),30),
  4.                        c(seq(3,10),seq(11,30)),
  5.                        c(seq(4,15),seq(16,30)),
  6.                        c(seq(5,21),seq(22,30)),
  7.                        c(seq(6,26),seq(27,30)),
  8.                        c(seq(7,30)),
  9.                        c(seq(8,30)),
  10.                        c(seq(9,30)),
  11.                        c(seq(10,30)),
  12.                        c(seq(11,30)),
  13.                        c(seq(12,30)),
  14.                        c(seq(13,30)),
  15.                        c(seq(14,30)),
  16.                        c(seq(15,30)),
  17.                        c(seq(16,30)),
  18.                        c(seq(17,30)),
  19.                        c(seq(18,30)),
  20.                        c(seq(19,30)),
  21.                        c(seq(20,30)),
  22.                        c(seq(21,30)),
  23.                        c(seq(22,30)),
  24.                        c(seq(23,30)),
  25.                        c(seq(24,30)),
  26.                        c(seq(25,30)),
  27.                        c(seq(26,30)),
  28.                        c(seq(27,30)),
  29.                        c(seq(28,30)),
  30.                        c(seq(29,30)),
  31.                        c(30)),
  32.                  y = c(rep(0,30),
  33.                        rep(1,30),
  34.                        rep(2,29),
  35.                        rep(3,28),
  36.                        rep(4,27),
  37.                        rep(5,26),
  38.                        rep(6,25),
  39.                        rep(7,24),
  40.                        rep(8,23),
  41.                        rep(9,22),
  42.                        rep(10,21),
  43.                        rep(11,20),
  44.                        rep(12,19),
  45.                        rep(13,18),
  46.                        rep(14,17),
  47.                        rep(15,16),
  48.                        rep(16,15),
  49.                        rep(17,14),
  50.                        rep(18,13),
  51.                        rep(19,12),
  52.                        rep(20,11),
  53.                        rep(21,10),
  54.                        rep(22,9),
  55.                        rep(23,8),
  56.                        rep(24,7),
  57.                        rep(25,6),
  58.                        rep(26,5),
  59.                        rep(27,4),
  60.                        rep(28,3),
  61.                        rep(29,2),
  62.                        c(30)),
  63.                  fill = c(rep("E",30),
  64.                           c("Du",rep("S",13),rep("E",16)),
  65.                           c(rep("Du",4),rep("S",24),"E"),
  66.                           c(rep("Du",8),rep("S",20)),
  67.                           c(rep("Du",12),rep("S",15)),
  68.                           c(rep("Du",17),rep("S",9)),
  69.                           c(rep("Du",21),rep("S",4)),
  70.                           c(rep("Du",24)),
  71.                           c(rep("Du",23)),
  72.                           c(rep("Du",22)),
  73.                           c(rep("Du",21)),
  74.                           c(rep("Du",20)),
  75.                           c(rep("Du",19)),
  76.                           c(rep("Du",18)),
  77.                           c(rep("Du",17)),
  78.                           c(rep("Du",16)),
  79.                           c(rep("Du",15)),
  80.                           c(rep("Du",14)),
  81.                           c(rep("Du",13)),
  82.                           c(rep("Du",12)),
  83.                           c(rep("Du",11)),
  84.                           c(rep("Du",10)),
  85.                           c(rep("Du",9)),
  86.                           c(rep("Du",8)),
  87.                           c(rep("Du",7)),
  88.                           c(rep("Du",6)),
  89.                           c(rep("Du",5)),
  90.                           c(rep("Du",4)),
  91.                           c(rep("Du",3)),
  92.                           c(rep("Du",2)),
  93.                           c("Du")))
复制代码

使用道具

allain 在职认证  发表于 2018-8-31 00:28:05 |显示全部楼层 |坛友微信交流群
如图所示 QQ截图20180831002743.png

使用道具

dxystata 发表于 2018-9-4 15:54:21 |显示全部楼层 |坛友微信交流群
allain 发表于 2018-8-31 00:28
如图所示
谢谢!
如何加上空白的框和上面的1-30和左侧的1-30,去掉横轴和纵轴。

使用道具

allain 在职认证  发表于 2018-9-4 19:47:03 |显示全部楼层 |坛友微信交流群
dxystata 发表于 2018-9-4 15:54
谢谢!
如何加上空白的框和上面的1-30和左侧的1-30,去掉横轴和纵轴。
生成数据
  1. df <- data.frame(x = rep(seq(1,30),31),
  2.                  y = c(rep(0,30),
  3.                        rep(1,30),
  4.                        rep(2,30),
  5.                        rep(3,30),
  6.                        rep(4,30),
  7.                        rep(5,30),
  8.                        rep(6,30),
  9.                        rep(7,30),
  10.                        rep(8,30),
  11.                        rep(9,30),
  12.                        rep(10,30),
  13.                        rep(11,30),
  14.                        rep(12,30),
  15.                        rep(13,30),
  16.                        rep(14,30),
  17.                        rep(15,30),
  18.                        rep(16,30),
  19.                        rep(17,30),
  20.                        rep(18,30),
  21.                        rep(19,30),
  22.                        rep(20,30),
  23.                        rep(21,30),
  24.                        rep(22,30),
  25.                        rep(23,30),
  26.                        rep(24,30),
  27.                        rep(25,30),
  28.                        rep(26,30),
  29.                        rep(27,30),
  30.                        rep(28,30),
  31.                        rep(29,30),
  32.                        rep(30,30)),
  33.                  fill = c(rep(c("A","Du","S","E"),times = c(0,0,0,30)),
  34.                           rep(c("A","Du","S","E"),times = c(0,1,13,16)),
  35.                           rep(c("A","Du","S","E"),times = c(1,4,24,1)),
  36.                           rep(c("A","Du","S","E"),times = c(2,8,20,0)),
  37.                           rep(c("A","Du","S","E"),times = c(3,12,15,0)),
  38.                           rep(c("A","Du","S","E"),times = c(4,17,9,0)),
  39.                           rep(c("A","Du","S","E"),times = c(5,21,4,0)),
  40.                           rep(c("A","Du","S","E"),times = c(6,24,0,0)),
  41.                           rep(c("A","Du","S","E"),times = c(7,23,0,0)),
  42.                           rep(c("A","Du","S","E"),times = c(8,22,0,0)),
  43.                           rep(c("A","Du","S","E"),times = c(9,21,0,0)),
  44.                           rep(c("A","Du","S","E"),times = c(10,20,0,0)),
  45.                           rep(c("A","Du","S","E"),times = c(11,19,0,0)),
  46.                           rep(c("A","Du","S","E"),times = c(12,18,0,0)),
  47.                           rep(c("A","Du","S","E"),times = c(13,17,0,0)),
  48.                           rep(c("A","Du","S","E"),times = c(14,16,0,0)),
  49.                           rep(c("A","Du","S","E"),times = c(15,15,0,0)),
  50.                           rep(c("A","Du","S","E"),times = c(16,14,0,0)),
  51.                           rep(c("A","Du","S","E"),times = c(17,13,0,0)),
  52.                           rep(c("A","Du","S","E"),times = c(18,12,0,0)),
  53.                           rep(c("A","Du","S","E"),times = c(19,11,0,0)),
  54.                           rep(c("A","Du","S","E"),times = c(20,10,0,0)),
  55.                           rep(c("A","Du","S","E"),times = c(21,9,0,0)),
  56.                           rep(c("A","Du","S","E"),times = c(22,8,0,0)),
  57.                           rep(c("A","Du","S","E"),times = c(23,7,0,0)),
  58.                           rep(c("A","Du","S","E"),times = c(24,6,0,0)),
  59.                           rep(c("A","Du","S","E"),times = c(25,5,0,0)),
  60.                           rep(c("A","Du","S","E"),times = c(26,4,0,0)),
  61.                           rep(c("A","Du","S","E"),times = c(27,3,0,0)),
  62.                           rep(c("A","Du","S","E"),times = c(28,2,0,0)),
  63.                           rep(c("A","Du","S","E"),times = c(29,1,0,0))))
复制代码

使用道具

allain 在职认证  发表于 2018-9-4 19:48:18 |显示全部楼层 |坛友微信交流群
dxystata 发表于 2018-9-4 15:54
谢谢!
如何加上空白的框和上面的1-30和左侧的1-30,去掉横轴和纵轴。
QQ截图20180904194615.png

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 50 + 2 + 2 + 2 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 50  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

allain 在职认证  发表于 2018-9-4 19:50:12 |显示全部楼层 |坛友微信交流群
allain 发表于 2018-9-4 19:47
生成数据
@cheetahfly   请帮忙看下,data.frame里面生成y时候,如何简化代码,谢谢

使用道具

cheetahfly 在职认证  发表于 2018-9-4 22:20:31 |显示全部楼层 |坛友微信交流群
allain 发表于 2018-9-4 19:50
@cheetahfly   请帮忙看下,data.frame里面生成y时候,如何简化代码,谢谢
2楼的可以写成:rep(0L:30L, c(30, 30L:1L))
8楼的可以写成:rep(0L:30L, each = 30L)

使用道具

dxystata 发表于 2018-9-5 08:29:04 来自手机 |显示全部楼层 |坛友微信交流群
allain 发表于 2018-9-4 19:48
上面的1-30和左侧的1-30画出来和原图不一样

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 04:35