मैं कई भूखंडों को एक साथ जोड़ने की कोशिश कर रहा हूं। मैंने अंडे का उपयोग करके भूखंडों को संरेखित करने का समाधान ढूंढ लिया है: ggarrange। यह मुख्य भूखंडों की अच्छी तरह से देखभाल करता है। लेकिन मैं सभी भूखंडों के y.axis शीर्षक को भी संरेखित करना चाहता हूं। और मैं इसे ggplot विकल्पों के साथ काम करने के सामान्य सुझाव के माध्यम से नहीं कर सकता, क्योंकि हर बार जब मैं अपनी स्क्रिप्ट चलाता हूं तो संख्याओं की सीमा भिन्न होती है और एक निश्चित सीमा के साथ नहीं आ सकती है, इसलिए अक्ष शीर्षक का स्थान बदल जाता है। मुझे पता है कि किंवदंती और जगह को एक अलग ग्रिड में अलग करना संभव है, मैं सोच रहा था कि क्या हम धुरी के साथ भी ऐसा ही कर सकते हैं?

मैंने यहां एक साधारण नमूना कोड बनाया है।

# example created to explain my problem

gdf <- data.frame(a = runif(10,  0, 1),
              b = runif(10, 100, 1000),
              c= runif(10, 10000,100000),
              d= runif(10, 100000,1000000))


p1 <- ggplot(gdf, aes(a, b)) + geom_point() + ylab ("first")
p2 <- ggplot(gdf, aes(a, c)) + geom_point() + ylab ("Second")
p3 <- ggplot(gdf, aes(a, d)) + geom_point() + ylab ("third" )

egg::ggarrange(p1, p2, p3, ncol= 1, nrow = 3, heights=c(1, 1, 1))

enter image description here

1
newbie 7 अप्रैल 2017, 05:01

2 जवाब

सबसे बढ़िया उत्तर

आप cowplot::plot_grid का उपयोग कर सकते हैं जिसमें एक संरेखित तर्क है:

cowplot::plot_grid(p1, p2, p3, align = "v", ncol = 1)

plot with cowplot

1
FlorianGD 7 अप्रैल 2017, 15:08

यदि gtables में समान संरचना है, तो अंडा अधिक मात्रा में है, आप बस rbind का उपयोग कर सकते हैं (gtable संस्करण को तुलना के लिए unit.pmax पसंद नहीं है इसलिए मैं gridExtra संस्करण का उपयोग करता हूं),

pl <- lapply(list(p1,p2,p3), ggplotGrob)
pl <- Reduce(gridExtra::rbind.gtable, pl)
grid::grid.draw(pl)

enter image description here

2
baptiste 7 अप्रैल 2017, 05:29