到目前为止,我已经成功地改变颜色直方图单杆下面的例子在这里
test <- rnorm(100);
h <- hist(test);
b <- cut(1, h$breaks);
clr <- rep("grey", length(h$counts));
clr[b] <- "red";
plot(h, col=clr);
Run Code Online (Sandbox Code Playgroud)
我希望能够更改高于某个x轴值的直方图箱的颜色 - 例如,在示例中的分布函数中高于1.我遇到麻烦的部分原因是我并不完全理解cut()
返回的因素.
从根本上说,你想要一个test
不在cut
s 上的逻辑选择器.
这是你的剪切对象的样子:
> bks <- cut(test,10)
Run Code Online (Sandbox Code Playgroud)
级别是字符类型:
等级(bks) 1 "(-2.53,-2.01]""( - 2.0,-1.5]""( - 1.5,-0.978]""( - 0.978,-0.459]"[5]"( - 0.459,0.0596 ]""(0.0596,0.578)""(0.578,1.1)""(1.1,1.62)"
[9]"(1.62,2.13)""(2.13,2.65)"
数据类型为数字:
> head(as.numeric(bks))
[1] 5 6 6 6 3 5
Run Code Online (Sandbox Code Playgroud)
这是使用ggplot2的解决方案,而不是手工制作切割等等:
test <- rnorm(100)
dat <- data.frame( x=test, above=test>1 )
library(ggplot2)
qplot(x,data=dat,geom="histogram",fill=above)
Run Code Online (Sandbox Code Playgroud)
更改颜色矢量,clr
以便在条形图大于1时显示红色,否则显示灰色.
clr <- ifelse(h$breaks < 1, "grey", "red")[-length(h$breaks)]
Run Code Online (Sandbox Code Playgroud)
然后像以前一样绘图.
归档时间: |
|
查看次数: |
12219 次 |
最近记录: |