L oop и рисовать прямоугольники с цветами автоматически - PullRequest
0 голосов
/ 05 августа 2020

У меня есть этот набор данных, указанный ниже, который будет использоваться для моего вопроса ниже.

Data<-read.table(file=file.choose(),header=T) 

Data;
    VARIABLE    TYPE    NGENES  BETA    BETA_STD    SE  P
    black   SET 43  -0.049246   -0.0078434  0.14654 0.63156
    blue    SET 152 -0.080217   -0.023193   0.08137 0.83781
    brown   SET 163 -0.057881   -0.017266   0.079054    0.76791
    cyan    SET 42  0.1498  0.023586    0.14128 0.1446
    darkgreen   SET 2   -0.65338    -0.022727   0.67635 0.83292
    green   SET 172 -0.13458    -0.041115   0.073527    0.96631
    greenyellow SET 40  0.026733    0.0041104   0.14624 0.42749
    grey    SET 4   0.16388 0.0080567   0.53064 0.37874
    grey60  SET 23  -0.1455 -0.017054   0.20066 0.76576
    lightcyan   SET 41  0.083008    0.012918    0.15225 0.29284
    magenta SET 32  -0.10777    -0.014858   0.16601 0.74184
    midnightblue    SET 23  0.00024188  2.84E-05    0.19544 0.49951
    pink    SET 64  -0.017662   -0.0034093  0.12521 0.55608
    purple  SET 60  0.12025 0.022504    0.12624 0.17048
    red SET 73  0.40737 0.083745    0.11427 0.00018742
    royalblue   SET 7   -0.27895    -0.018125   0.36009 0.78067
    salmon  SET 170 0.040831    0.01241 0.076001    0.29559
    turquoise   SET 450 0.027806    0.012383    0.050585    0.29131

С этим набором данных я хочу создать несколько прямоугольников на графике, каждый из которых имеет цветовую кодировку и помечено pvalue поверх прямоугольника. Я хочу l oop через столбец VARIABLE и для каждого прямоугольника назначить цвет. Кроме того, я хочу пропустить l oop через столбец P и записать значение P поверх каждого прямоугольника. Таким образом, для каждой строки в наборе данных цвет и значение p должны быть одинаковыми. Это сценарий, который я пробую прямо сейчас. Я не вижу, как l oop связанные столбцы с этим скриптом. Любая помощь была бы хороша.

coords <- matrix(
c(100, 300, 110, 310,
120, 300, 130, 310,
140, 300, 150, 310,
160, 300, 170, 310,
180, 300, 190, 310,
100, 320, 110, 330,
120, 320, 130, 330,
140, 320, 150, 330,
160, 320, 170, 330,
180, 320, 190, 330,
100, 340, 110, 350,
120, 340, 130, 350,
140, 340, 150, 350,
160, 340, 170, 350,
180, 340, 190, 350,
100, 360, 110, 370,
120, 360, 130, 370,
140, 360, 150, 370),
ncol=4,byrow=TRUE)

 plot(c(100, 200), c(300, 450), type = "n",
         main = "Test")
rfun <- function(x,i) {
    do.call(rect,as.list(x))
}
apply(coords,1,rfun)
text((coords[,1]+coords[,3])/2,
     (coords[,2]+coords[,4])/2,
     seq(nrow(coords)))

1 Ответ

1 голос
/ 05 августа 2020

Я не уверен, но, может быть, вам нужно что-то вроде этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...