作者celestialgod (天)
看板R_Language
标题Re: [问题] 画图基本问题
时间Fri Oct 23 14:24:55 2015
※ 引述《spiderway (spiderway)》之铭言:
: [问题类型]:
: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
: [软体熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]:
: 我有两笔资料两个都长像这样
: 1 449 403 723 334 923 1040 1029 983 1 286 358 514 406 734 713 970 927
: 1是界线,不用理他,後面有八笔数值。
: 想画图成这样:http://imgur.com/qweQ8ee
: 两栏就是两笔
: 列:每一格要分成八格小格,分别放每组的八个数值
: 第一栏有点像这样:
: 449 403 723 334
: 923 1040 1029 983
: 286 358 514 406
: 734 713 970 927
: 小鲁第一次问问题,身边也没人可以问,拜托各位帮忙
: 我之前是有用过ggplot的polygon去画过类似格子的图
: 但是因为要设定每一格的ID和x,y轴,会有个问题是
: 一个格子有四个座标,value就会重复4次一样的,改的时候四个都要改
: 经验不足,想不太到方法,请协大大们协助,谢谢。
: [环境叙述]:
: R version 3.1.3 (2015-03-09)
: Platform: x86_64-w64-mingw32/x64 (64-bit)
: Running under: Windows 7 x64 (build 7601) Service Pack 1
: [关键字]:ggplot,plot
我不知道ggplot2可不可以这样画
我以前要画这种图都用lattice的levelplot
library(lattice)
mats = replicate(4, abs(matrix(runif(8),2))*1000, simplify = FALSE)
mat = cbind(rbind(mats[[1]], NA, mats[[2]]), NA, rbind(mats[[3]], NA,
mats[[4]]))
DT = expand.grid(seq(0.5, 0.5 + ncol(mat) - 1, by = 1), seq(0.5, 0.5 +
nrow(mat) - 1, by = 1))
DT$val = as.vector(t(mat))
levelplot(val ~ Var1 + Var2, DT, col.regions = c("white",
rev(rainbow(30)[1:20])))
大概长这样:
http://i.imgur.com/aDbBNNy.png
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.73.190
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1445581499.A.A1C.html
※ 编辑: celestialgod (140.109.73.190), 10/23/2015 14:26:24
1F:推 spiderway: 谢谢 C大 !! 研究中 感恩 10/23 17:53
ggplot2:
http://docs.ggplot2.org/0.9.3/geom_tile.html
※ 编辑: celestialgod (180.218.154.163), 10/24/2015 12:08:03