2013-04-22 4 views
7

क्षमा करें अगर इस प्रश्न का उत्तर पहले ही दिया जा चुका है लेकिन मुझे लगता है कि मुझे क्या चाहिए।grid.arrange द्वारा उत्पादित पंक्तियों की ऊंचाई में परिवर्तन करते समय nrow = 1

मैं ggplot2 में दो भूखंडों जो मैं एक ही ग्रिड में संयोजन कर रहा हूँ grid.arrange का उपयोग कर के रूप में इस का उत्पादन किया है:

grid.arrange(p1,p2,main="Title", ncol=2) 

जो मुझे इतना की तरह कंधे से भूखंडों की ओर देता है:

Side by side plots

(क्षमा करें मुझे समझ में नहीं आता कि यह पोस्ट के भीतर मेरी छवि को दिखाने के लिए कैसे प्राप्त किया जाए, अगर आप किसी के साथ उसमें मदद कर सकते हैं तो यह बहुत अच्छा होगा! मैं लिंक का उपयोग करके लोगों को परेशान नहीं करना चाहता।)

मैं इस कोड को कैसे बदल सकता हूं ताकि ग्राफ अभी भी पक्ष में हों लेकिन वे ऑब्जेक्ट की पूरी लंबाई बढ़ाए नहीं हैं? मैं उन्हें वर्ग बनना चाहता हूं।

मुझे पता है कि मैं एक तर्क "ऊंचाइयों" जोड़ सकता हूं लेकिन यह सुनिश्चित नहीं है कि मुझे यही चाहिए और इस स्थिति में इसे लागू करने पर कुछ भी नहीं देखा है।

धन्यवाद!

+0

इस समस्या का सबसे बुनियादी समाधान एक "मोटी" ग्राफिक्स उपकरण खिड़की, उदा पर प्लॉट करने के लिए है 'dev.new (चौड़ाई = 10, ऊंचाई = 5)' – baptiste

उत्तर

7

तुम भी तो जैसे grid.arrange के सापेक्ष ऊंचाई और heights और widths तर्कों का उपयोग चौड़ाई निर्दिष्ट कर सकते हैं:

grid.arrange(p1 , p2 , widths = unit(0.5, "npc") , heights=unit(0.5, "npc") , main="Title", ncol=2) 

enter image description here

+0

बिल्कुल वही जो मैं चाहता था धन्यवाद :) - मैंने इसे सहायता पृष्ठों में से एक में देखा लेकिन यह मेरे लिए अस्पष्ट था। "एनपीसी" के लिए क्या खड़ा है? – Nicki

+0

@ निकोलाक्यू ग्रेट! एनपीसी = सामान्यीकृत पैरेंट निर्देशांक - मूल रूप से साजिश क्षेत्र के अनुपात के समान होते हैं, इसलिए मान 0 से 1 तक होते हैं। –

4

आप ggplot2 भूखंडों बनाने के लिए उपयोग कर रहे हैं तो एक तरह से किया जाएगा के रूप में वर्गबद्ध भूखंड पाने के लिए coord_fixed() का उपयोग करने के लिए और फिर उन्हें व्यवस्थित करें। आप coord_fixed() के साथ इसे प्राप्त कर सकते हैं जहां ratio= मानों की सीमा से y मानों की सीमा को विभाजित करके गणना की जाती है।

ratio.plot1<-abs(max(iris$Petal.Width)-min(iris$Petal.Width))/abs(max(iris$Petal.Length)-min(iris$Petal.Length)) 

ratio.plot2<-abs(max(iris$Sepal.Width)-min(iris$Sepal.Width))/abs(max(iris$Sepal.Length)-min(iris$Sepal.Length)) 

p1<-ggplot(iris,aes(Petal.Width,Petal.Length))+geom_point()+ 
    coord_fixed(ratio=ratio.plot1) 
p2<-ggplot(iris,aes(Sepal.Width,Sepal.Length))+geom_point()+ 
    coord_fixed(ratio=ratio.plot2) 
grid.arrange(p1,p2,main="Title",ncol=2) 

enter image description here

संबंधित मुद्दे