Re: [问题] 画图上颜色的问题

楼主: PhysicsBoy (翟南)   2015-02-28 23:48:29
※ 引述《celestialgod (攸蓝)》之铭言:
: ※ 引述《PhysicsBoy (翟南)》之铭言:
: : [问题叙述]:
: : 假设有两个一维阵列,分别是A和B
: : A = c(25到30之间的数字,有重复)
: : B = c(19当23之间的数字,有重复)
: : 意即B里面的数字一定都小于A
: : 接着我想将A和B画直方图在同一张图上,该图乃表示个别数字出现次数的统计图
: : 也就是X轴是表示A和B出现的数字,Y轴是该数字出现的次数
: : 现在我想将A和B以不同颜色画出
: : 也就是如果A的直方图是蓝色,那B就以不是蓝色的颜色画出
: : 问题在此,可否有办法使用plot函式直接一次画出来???
: : 而不是先画一半(如先画A)后再用point补上另外一半(再画B)
: : 以上请教,谢谢!
: 据我所知,plot做不到,利用lattice的formula and groups
: 可以轻松做到这一点,code范例如下:
: A = sample(25:30, 100, replace = TRUE)
: B = sample(19:23, 100, replace = TRUE)
: library(lattice)
: dat = stack(data.frame(A, B))
: histogram( ~ values, groups = ind, data = dat, #以下只是细部设定
: type = "density", breaks = 18:31, ylim = c(0, 0.5),
: par.settings = simpleTheme(col = c("cyan","yellow")),
刚刚我试着改颜色,分别是将cyan都改成red,而yellow改成blue
: auto.key = list(columns = 2, col = c("cyan","yellow"),
当然上面这行的也有改
: text = c("Data A", "Data B")),
: panel = function(...) panel.superpose(...,panel.groups=panel.histogram,
: col = c("cyan","yellow"), alpha = 0.4))
上面这行的也改
最后图示在此 http://ppt.cc/XXTj
直方图的蓝色跟红色不是那么的蓝色跟红色
请问这该如何解决呢? 谢谢
: 另外,ggplot2也可以做到,简单范例如下:
: ggplot(dat, aes(values)) + geom_histogram(binwidth = 1,
: position = "identity", aes(fill = factor(ind)), colour = "black") +
: scale_fill_discrete(name="DataSet")
: 就学习难易度来说,ggplot2是简单许多,而且颜色不用手动设定,
: lattice很多都需要自己设定,比较复杂,
: 我个人偏好lattice,只是比较喜欢他的程式写法
: 我不是很习惯用ggplot2的风格...
: 另外,ggplot2是base on lattice做的,而且lattice画图会比较快
: (reference: http://tinyurl.com/lyu857e )
作者: celestialgod (天)   2015-03-01 00:01:00
alpha = 1就好了要跟legend一致的方法就在simpleTheme中加入alpha = 0.4 (跟下面panel function一样的参数)
楼主: PhysicsBoy (翟南)   2015-03-01 00:03:00
收到!那如果y轴想用绝对数量而非density该怎改?
作者: celestialgod (天)   2015-03-01 00:04:00
change type="density" to type="count"改成count, ylim也要做更改就是了
楼主: PhysicsBoy (翟南)   2015-03-01 00:10:00
恩恩!就来试试看!太感谢了!!

Links booklink

Contact Us: admin [ a t ] ucptt.com