barplot没有正确显示颜色

时间:2016-08-31 20:13:05

标签: r

r版本:R 3.3.1 GUI 1.68 Mavericks build(7238)

我正在使用barplot为103个主题生成瀑布图。数据按从低到高的顺序排列。我的数据框的每一行都有一个颜色分配在一个名为color的变量中(代码下面显示的数据部分)。

我知道我最右边的酒吧应该是红色的,但它显示为蓝色。颜色分配中存在其他错误。任何建议表示赞赏。

谢谢,

杰拉德

我的代码和数据除了以下内容:

pdf(file="//users//Gerard//GS//r_work//BCVA_PP_WF2.pdf")

par(oma=c(2,2,2,2));

barplot(d_bcva,
    space=0.0,
    ylim=c(-40,30),
        main = "Change in BCVA Letters Read at Week 20",
    col=color,
        ylab="Change",
    las=1,
        border=NA,
        cex.axis=1.0,
    cex.lab=1.0)
abline(h=c(-20,-15,-10,-5,5,10,15,20), col="lightgray", lty=c(2,2,2,2)) 

legend(
  "topleft",
  box.lty=0,
  legend=c("Group A", "Group B", "Group C", "Group D"),
  cex=0.8,
  fill=c('red','blue','green','black'))

dev.off()


        ARM d_bcva armn color order
1   Group C  -33.5    3 green     1
2   Group C  -26.0    3 green     2
3   Group B  -14.5    2  blue     3
4   Group D  -14.5    4 black     4
5   Group C  -11.0    3 green     5
6   Group B  -10.0    2  blue     6
7   Group A   -9.5    1   red     7
8   Group C   -7.5    3 green     8
9   Group C   -7.0    3 green     9
10  Group C   -7.0    3 green    10
11  Group C   -6.5    3 green    11

          [data removed]

97  Group D   15.0    4 black    97
98  Group D   16.0    4 black    98
99  Group A   16.5    1   red    99
100 Group B   16.5    2  blue   100
101 Group D   16.5    4 black   101
102 Group C   17.0    3 green   102
103 Group A   20.5    1   red   103

1 个答案:

答案 0 :(得分:0)

color列作为一个因素回来,影响了您对每行颜色的调用。

假设您的数据位于名为x的数据框中:

barplot(x$d_bcva,
space=0.0,
ylim=c(-40,30),
    main = "Change in BCVA Letters Read at Week 20",
col=as.vector(x$color),
    ylab="Change",
las=1,
    border=NA,
    cex.axis=1.0,
cex.lab=1.0)

abline(h=c(-20,-15,-10,-5,5,10,15,20), col="lightgray", lty=c(2,2,2,2))