2016-07-10 49 views
4

我想使用ggplot2將OHS事件映射到醫院平面圖的PNG上。我試圖讀取這個非地理地圖作爲ggimage。使用ggplot在圖例上繪製圖例

ICU Floor Plan

到目前爲止,我曾嘗試與數據集(14462),我有意見如下。

實施例的數據集

toy <- data.frame(patient_ID = c(1001,1001,1002,1003,1004), 
       SEX = c("M","M","F","F","F"), 
       phenotype = c("Psychiatric","Psychiatric", "Cardio", 
          "Cancer","Psychiatric"), 
          x = c(0.5737, 0.5737, 0.6968, 0.4704, 0.6838), 
          y= c(0.3484, 0.3484, 0.62, 0.5216, 0.2486)) 

我試圖讀取作爲光柵文件,然後使用ggmaps但難度沒有圖例。

library(ggmap) 
library(png) 
library(ggplot2) 
library(data.table) 

toy <- fread("toy.csv") 

# read in image 

r <- readPNG("ICU-crop.png") 

#use ggimage to convert to plot and add gender 
ggimage(r, scale_axes = TRUE) + 
    geom_point(aes(x = x, y = y, colour = SEX), data = toy, 
      size = I(1), fill = NA) 

我真的想使用ggplot,但需要圖例。我不確定我可以使用其他方法通過PNG進行ggplot。

回答

3

真正的「魔法」爲這只是fullpage=FALSE在調用ggimage(),但你必須要清理軸一下,然後:

ggimage(r, fullpage = FALSE, scale_axes = TRUE) + 
geom_point(aes(x = x, y = y, colour = SEX), 
      data = toy, size = I(1), fill = NA) + 
    labs(x=NULL, y=NULL) + 
    theme(axis.text=element_blank()) + 
    theme(axis.ticks=element_blank()) 

enter image description here

你應該prbly清理也有傳說,我建議照亮基本圖像一點,因爲它很難看到它和你要疊加的顏色之間的對比(除非它們是大對象)。

+0

感謝您提供有關改進可視化的解決方案和其他建議。建議最肯定會改變散點圖大小和顏色。 – monkeyshines