在Windows 7上的R v2.14.0 x64中,我在gplots库中使用plotCI函数,并尝试使用以下内容基于数据框内的数据设置每个绘图的颜色:
plotCI(
x = data[1:2,3],
ui = data[1:2,5],
li = data[1:2,4],
col=data[1:2,6],
lty = 1, pch=20, xaxt ="n", xlim = c(1,42), ylim = c(0,100),
gap = 0 )
Run Code Online (Sandbox Code Playgroud)
除了绘制点的颜色(错误地符合错误的系列)之外,绘图正确地发生(但是颜色在系列内是一致的).
我有一个结构数据框(仅前7行):
size qim X1 lower upper color
1 1000 1 100.0000 99.6000 100.0000 blue
2 1000 2 99.8000 99.4000 100.0000 blue
3 1000 3 98.2000 96.6000 99.2000 blue
4 1000 4 62.7000 58.8000 65.7000 blue
5 1000 5 10.4000 9.0000 12.5000 blue
6 1000 6 3.9000 2.9000 4.9000 blue
7 5000 1 99.9000 99.4000 100.0000 red
Run Code Online (Sandbox Code Playgroud)
我使用以下方法对数据框排序:
data <- data.unsorted[with(data,order(qim,size)),]
Run Code Online (Sandbox Code Playgroud)
排序似乎已经正确发生,结果数据框:
size qim X1 lower upper color
1 1000 1 100.0000 99.6000 100.0000 blue
7 5000 1 99.9000 99.4000 100.0000 red
13 10000 1 99.7000 99.4000 99.9000 green
19 40909 1 98.5000 98.5000 98.5000 black
25 152228 1 98.1000 98.1000 98.1000 black
31 241707 1 98.9000 98.9000 98.9000 black
37 434844 1 97.4000 97.4000 97.4000 black
Run Code Online (Sandbox Code Playgroud)
在结果图中,第一行绘制为红色,第二行绘制为蓝色(反转).
有什么我做错了,还是有其他解释?
这里有一个因素/字符混乱.该color变量被读入R作为因子,因此其基础数值根据值的字母顺序分配:"black"= 1,"blue"= 2,(可能)"green"= 3,"red "= 4.然后根据R的默认调色板映射颜色:1 =黑色,2 =红色,3 =绿色,4 =蓝色.这导致(看似奇怪的)对应:"黑色"=黑色,"蓝色"=红色,"绿色"=绿色,"红色"=蓝色(!!).修复实际上非常简单:只需使用as.character您的color变量.
data.unsorted <- read.table(textConnection(
" size qim X1 lower upper color
1 1000 1 100.0000 99.6000 100.0000 blue
2 1000 2 99.8000 99.4000 100.0000 blue
3 1000 3 98.2000 96.6000 99.2000 blue
4 1000 4 62.7000 58.8000 65.7000 blue
5 1000 5 10.4000 9.0000 12.5000 blue
6 1000 6 3.9000 2.9000 4.9000 blue
7 5000 1 99.9000 99.4000 100.0000 red"),
header=TRUE)
library(gplots)
data <- data.unsorted[with(data,order(qim,size)),]
Run Code Online (Sandbox Code Playgroud)
我还要指出,with声明使得更容易阅读代码并确保您获得正确的列:
with(data[1:2,],
plotCI(x=X1,li=lower,ui=upper,
col=as.character(color),
lty=1,pch=20,
xaxt="n",
xlim=c(1,42),ylim=c(0,100),
gap=0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |