2017-06-06 98 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

回答