2015-05-05 4 views
2

Я использую пакет ega и функцию plotClarkeGrid, чтобы сгенерировать следующий график. Этот пакет чрезвычайно полезен, потому что он рисует квадранты и цветовые координаты точек, экономя меня много времени. Это именно то, что я хотел, но теперь я определил выбросы и хотел бы выделить их на одном графике, просто добавив круг вокруг точки данных. В моих первоначальных данных есть сотни выбросов, это лишь небольшая часть.Построение нескольких наборов данных в R

enter image description here

До сих пор я сделал два отдельных файла, один, который содержит все данные, и тот, который содержит только выбросы. То, что я пытался сделать, это просто нарисовать все точки, а затем отобразить выбросы в виде больших красных кругов, чтобы они были видны. Итак, есть ли способ добавить точки к этому графу, чтобы он выглядел примерно так? enter image description here

Вот останцы:

data1 <- structure(list(BG = c(193L, 195L, 204L, 213L, 230L, 231L, 288L, 
    268L, 214L, 176L, 169L, 288L, 268L, 214L, 176L, 169L, 252L, 210L, 
    217L, 122L, 175L, 181L, 223L, 255L, 264L, 228L, 193L, 259L, 256L, 
    243L, 236L, 234L, 230L, 236L, 234L, 232L, 230L, 230L, 225L, 248L, 
    289L, 292L, 262L, 329L), CGM.Progressive = c(165L, 144L, 148L, 
    160L, 172L, 179L, 277L, 247L, 248L, 214L, 300L, 281L, 249L, 249L, 
    212L, 300L, 243L, 272L, 300L, 300L, 190L, 180L, 178L, 110L, 93L, 
    144L, 171L, 206L, 206L, 196L, 299L, 300L, 300L, 209L, 205L, 229L, 
    239L, 247L, 250L, 195L, 200L, 221L, 244L, 105L), BB.include = c(0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("BG", 
    "CGM.Progressive", "BB.include"), row.names = c(NA, -44L), class = "data.frame") 

Здесь все точки:

data2 <- structure(list(BG = c(58L, 57L, 67L, 121L, 157L, 191L, 193L, 
195L, 204L, 213L, 230L, 231L, 239L, 252L, 285L, 240L, 209L, 165L, 
140L, 242L, 280L, 288L, 268L, 214L, 176L, 169L, 242L, 280L, 288L, 
268L, 214L, 176L, 169L, 190L, 221L, 232L, 232L, 233L, 209L, 274L, 
252L, 217L, 122L, 218L, 236L, 248L, 263L, 268L, 252L, 210L, 217L, 
122L, 274L, 252L, 217L, 248L, 263L, 120L, 124L, 146L, 169L, 175L, 
181L, 223L, 255L, 264L, 228L, 193L, 150L, 147L, 141L, 144L, 138L, 
150L, 147L, 141L, 230L, 216L, 207L, 231L, 259L, 256L, 243L, 236L, 
234L, 230L, 157L, 207L, 231L, 259L, 256L, 243L, 236L, 234L, 230L, 
259L, 256L, 237L, 236L, 234L, 232L, 230L, 230L, 225L, 237L, 259L, 
243L, 237L, 236L, 357L, 347L, 318L, 301L, 303L, 158L, 138L, 94L, 
88L, 137L, 188L, 201L, 225L, 248L, 289L, 292L, 262L, 329L, 109L, 
94L, 137L, 168L, 188L, 225L, 248L, 289L), CGM.Progressive = c(57L, 
50L, 46L, 105L, 170L, 169L, 165L, 144L, 148L, 160L, 172L, 179L, 
251L, 269L, 293L, 276L, 226L, 148L, 110L, 227L, 255L, 277L, 247L, 
248L, 214L, 300L, 231L, 259L, 281L, 249L, 249L, 212L, 300L, 199L, 
197L, 194L, 205L, 220L, 252L, 273L, 270L, 110L, 112L, 204L, 204L, 
255L, 260L, 252L, 243L, 272L, 300L, 300L, 300L, 300L, 239L, 283L, 
293L, 160L, 198L, 243L, 193L, 190L, 180L, 178L, 110L, 93L, 144L, 
171L, 147L, 128L, 141L, 129L, 121L, 116L, 146L, 126L, 216L, 203L, 
202L, 227L, 267L, 267L, 268L, 266L, 270L, 270L, 161L, 197L, 243L, 
206L, 206L, 196L, 299L, 300L, 300L, 232L, 200L, 231L, 209L, 205L, 
229L, 239L, 247L, 250L, 240L, 236L, 250L, 222L, 193L, 300L, 300L, 
275L, 278L, 300L, 171L, 163L, 106L, 74L, 130L, 187L, 184L, 176L, 
195L, 200L, 221L, 244L, 105L, 106L, 86L, 138L, 152L, 196L, 200L, 
192L, 186L), BB.include = c(1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 
0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 
0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L)), .Names = c("BG", 
"CGM.Progressive", "BB.include"), row.names = c(NA, -135L), class = "data.frame") 

И мой код:

library(ega) 
data1$BG = as.integer(as.character(data1$BG)) 
data1$CGM.Progressive = as.integer(as.character(data1$CGM.Progressive)) 

data2$BG = as.integer(as.character(data2$BG)) 
data2$CGM.Progressive = as.integer(as.character(data2$CGM.Progressive)) 

x1<-data1[1:45,2] 
y1<-data1[1:45,1] 

x2<-data1[1:136,2] 
y2<-data1[1:136,1] 

plotClarkeGrid(x1, y1, 
title = "Reference vs. CGM, CEG \n for Retrospective Calibration", 
    xlab = "Reference (mg/dl)", 
    ylab = "Experimental (mg/dl)", 
    pointsize = 1, pointalpha = 1) 

ответ

2

Согласно ?plotClarkeGrid, функция возвращает ggplot2 объект. Поэтому вы должны уметь добавлять точки к исходному сюжету следующим образом:

# Your plot 
p = plotClarkeGrid(x1, y1, 
    title = "Reference vs. CGM, CEG \n for Retrospective Calibration", 
    xlab = "Reference (mg/dl)", 
    ylab = "Experimental (mg/dl)", 
    pointsize = 1, pointalpha = 1) 

# Add points to the plot 
library(ggplot2) 
p + 
    geom_point(data = data1, aes(CGM.Progressive, BG), 
    shape = 1, size = 10, fill = NA, color = "red") 
+0

Ну, это было простое решение! Спасибо за вход @Sandy Muspratt! – BillyBoy

Смежные вопросы