作者celestialgod (天)
看板R_Language
标题Re: [问题] 绘制事件图
时间Tue May 2 23:18:56 2017
※ 引述《Neisseria (Neisseria)》之铭言:
: [问题类型]:
:
: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
:
: [软体熟悉度]:
: 请把以下不需要的部份删除
: 入门(写过其他程式,只是对语法不熟悉)
: [问题叙述]:
:
: 现在有一个乱数程式,每次会从 1 至 48 中任意挑选不重覆的六个数字
: 我们假设我们选了 100 次,程式如下:
: mx <- NULL
: for (i in 1:100) { mx <- rbind(mx, sample(1:48, 6, replace = FALSE))}
: df <- NULL
: for (i in 1:dim(mx)[1]) {
: col <- NULL
: for (j in 1:48) {
: if (any(mx[i, ] %in% j)) {
: col <- cbind(col, j)
: } else {
: col <- cbind(col, NA)
: }
: }
: df <- rbind(df, col)
: }
: 我现在想画以下的图:
: 48 |
: 47 | --- ------
: 46 |
: ...
: 5 | --------
: 4 |
: 3 |
: 2 | -----
: 1 | ---
: ---------------... -------
: 1 2 3 4 5 6 7 99 100
: 简单地说,若该数字出现,则画水平线,若未出现,则不画线
: 如果各位觉得这整个事件很像某个生活中发生的事,那纯属巧合 XD
:
: [程式范例]:
:
: 本来想用 ggplot 画,但现在已经不要求了,有图就好
: 如果有一些比较基本的绘图函式,可以自行组合也不错
: 因为 R 的函数包得太好了,要自已画一些其他类型的图反而不知怎麽画
:
: [环境叙述]:
:
: 对本题无明显帮助
:
: [关键字]:
:
程式两行,先看图吧:
http://imgur.com/a/GlBVX
code:
m <- replicate(100, sample(48, 6))
matplot(1:100, t(m), pch = "_", col = 1)
ggplot:
图:
http://imgur.com/a/GXvxI
library(ggplot2)
DF <- data.frame(x = rep(1:100, each = 6), y = as.vector(m))
ggplot(DF, aes(x, y)) + geom_point(pch = "_")
--
R资料整理套件系列文:
magrittr #1LhSWhpH (R_Language) https://goo.gl/72l1m9
data.table #1LhW7Tvj (R_Language) https://goo.gl/PZa6Ue
dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/I5xX9b
tidyr #1Liqls1R (R_Language) https://goo.gl/i7yzAz
pipeR #1NXESRm5 (R_Language) https://goo.gl/zRUISx
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.233.136.9
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1493738339.A.951.html
※ 编辑: celestialgod (36.233.136.9), 05/02/2017 23:22:47
1F:推 Neisseria: 感谢大大,的确解决了小弟的问题 05/02 23:40