r - 在 R 中绘制多个数据集

标签 r plot ggplot2

我使用包 ega 和函数 plotClarkeGrid 来生成以下图表。这个包非常有用,因为它绘制了象限并对点进行颜色坐标,节省了我很多时间。这正是我想要的,但现在我已经确定了异常值,并希望通过简单地在数据点周围添加一个圆圈来在同一张图表上突出显示它们。我的原始数据中有数百个异常值,这只是其中的一小部分。

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) 

最佳答案

根据?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")

关于r - 在 R 中绘制多个数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042239/

相关文章:

R:XGBoost 和特征哈希。 MError不断增加

r - 执行双聚类(行和列)后如何在 heatmap.2 上添加 ColSideColors

r - ggplot2 条形图中的订单条形图

r - 当我改变轴位置 ggplot 停止轴标签旋转

javascript - R Shiny DataTable 选定的行颜色

r - Plotly 等高线图行为

r - 与一个 data.table 中的多个组互相关

c - 绘制和显示数组的简单方法?

python - 如果我尝试在 IPython 中绘制图表,则图表为空

testing - 无法安装ggp​​lot