2017-06-06 44 views
0

我想顯示兩個圖,一個直方圖和一個散點圖,我希望它們相對於x軸對齊。我用hist()創建了我的直方圖,用ggplot2創建了我的散點圖。但是,我發現創建混合這兩者的多槽的問題,所以我決定使用ggplot2創建直方圖。請找到下面的代碼:對齊直方圖和散點圖在R

loadedimage <- readTIFF("my_data05.tiff") 
rasterizedimage <- rasterGrob(loadedimage, interpolate = TRUE) 
realmadrid_colors <-c("#00529f", "#8cc1f3", "blue") 
data_test <- subset(full_data, Rival == "Barcelona") 
data_kroos <- subset(data_test, Jugador == "Kroos") 

myscatter <- ggplot(data_kroos, aes(x = x1, y = y1)) + 
    annotation_custom(rasterizedimage, xmin = 0, xmax = 713, ymin = 0 , ymax = 497) + 
    geom_point(aes(fill = factor(data_kroos$Resultado)), 
     shape = 21, 
     size = 5) + 
    scale_fill_manual(values=realmadrid_colors) + 
    guides(fill=guide_legend(title=NULL)) + 
    coord_fixed() + 
    theme_bw() + 
    theme_no_axes(base.theme = theme_bw()) + 
    theme(legend.position = c(0.5, 0.04), 
    legend.box = "horizontal", 
    legend.direction = "horizontal", 
    legend.box.background = element_rect(fill = NA, colour = "transparent"), 
    legend.text = element_text(family = "Courier", size = 14), 
    axis.title = element_blank(), 
    axis.text = element_blank(), 
    axis.ticks = element_blank(), 
    plot.margin=unit(c(-0.05,-0.05,-0.05,-0.1),"in") 
    ) 

myhistogram <- qplot(data_barca[data_barca$Sección == "Passes_All",]$x1, breaks=seq(0, 660, by = 66), alpha = 0.5, geom = "histogram") 

如果我嘗試使用grid.newpage()和grid.draw(),我得到一個錯誤信息:NcoI位(X)== NcoI位(Y)是不正確的

grid.newpage() 
grid.draw(rbind(ggplotGrob(myscatter), ggplotGrob(myhistogram), size = "first")) 

我想要得到的東西像http://biokit.readthedocs.io/en/latest/auto_examples/plot_scatter.html (事實上我仍然在第一步中,我的目標是完全一樣在前鏈接),或類似的東西combine histogram with scatter plot in R,但在這種情況下,它不使用ggplot2,我不確定我是否可以像使用該軟件包一樣玩耍。

歡迎任何幫助!如果您需要我上傳任何文件,請告訴我。

在此先感謝!

+0

你會發現在溶液[計算器:GGPLOT2 - 多圖縮放(https://stackoverflow.com/questions/42220917/ggplot2-multiple-plots-scaling) –

+0

謝謝!最後,答案是使用ggExtra :: ggMarginal。這正是我所期待的! – futbolscientist

回答