2017-08-30 23 views
7

में प्लॉटिंग बार और रिवर्स बार प्लॉटिंग मैं उसी वाई-अक्ष का उपयोग करके बार के दो अनुक्रमों को साजिश करने की कोशिश कर रहा हूं। अनुक्रमों में से एक नीचे की ओर जाता है, दूसरा शीर्ष पर (ऊपर से नीचे तक) चला जाता है, और वाई अक्ष को दो में विभाजित किया जाता है (नीचे के सलाखों के लिए आधा और शीर्ष सलाखों के लिए आधा)। निचले सलाखों में हरे रंग की तरह एक रंग का उपयोग होता है, और शीर्ष बार एक और रंग, लाल, और वाई धुरी धुरी पर प्रत्येक आधा पर संबंधित रंगों का उपयोग करते हैं।वाई अक्ष

उदाहरण: enter image description here

प्रश्न: मैं कैसे रास्ता ऊपर चित्र में प्रतिनिधित्व किया y- अक्ष विभाजित कर सकते हैं?

मदद के लिए धन्यवाद! = डी

उत्तर

7

आप तीन अक्षों को ले कर और their properties समायोजित करके इस प्रभाव को बना सकते हैं। उदाहरण के लिए:

enter image description here

आप के रूप में यह पर बाईं पर क्लिक करके आवश्यकतानुसार कथा का स्थान बदलने और सबसे अच्छा स्थान पर खींचकर कर सकते हैं:

% The larger left axes: 
hLeft = axes('Position', [0.1 0.1 0.8 0.8], ... % Normalized position 
      'XLim', [0 11], 'YLim', [0 3], ... % Set desired limits 
      'Box', 'off');      % Turn off outline 
hLeft.XLabel.String = 'Time';   % Add an x label 
hLeft.YLabel.String = 'Line';   % Add a y label 
hLeft.Title.String = 'Bar-bar-plot'; % Add a title 
hLine = line(hLeft, 1:10, rand(1,10)+1, 'Color', 'k'); % Plot a sample line 

% The lower right axes: 
hLower = axes('Position', [0.1 0.1 0.8 0.4], ...   % Position over bottom half 
       'XLim', [0 11], 'YLim', [0 1.5], ...  % Set desired limits 
       'YColor', [0 0.5 0], 'Color', 'none', ... % Change colors 
       'YAxisLocation', 'right');     % Position y axis 
hLower.XAxis.Visible = 'off'; % Turn of x axis 
hLower.YLabel.String = 'Bar 1'; % Add a y label 
hold on; 
hBarLower = bar(hLower, 1:10, rand(1,10), ... % A sample bar plot 
       'FaceColor', 'none', 'EdgeColor', [0 0.5 0]); 

% The upper right axes: 
hUpper = axes('Position', [0.1 0.5 0.8 0.4], ...  % Position over top half 
       'XLim', [0 11], 'YLim', [0 1.5], ...  % Set desired limits 
       'YColor', [1 0 0], 'Color', 'none', ... % Change colors 
       'YAxisLocation', 'right', ...   % Position y axis 
       'YDir', 'reverse');      % Reverse y axis 
hUpper.XAxis.Visible = 'off'; % Turn off x axis 
hUpper.YLabel.String = 'Bar 2'; % Add a y label 
hold on; 
hBarUpper = bar(hUpper, 1:10, rand(1,10), ... % A sample bar plot 
       'FaceColor', 'none', 'EdgeColor', [1 0 0]); 

% Add a legend: 
hLegend = legend(hUpper, [hLine hBarLower hBarUpper], ... 
       {'line', 'bar 1', 'bar 2'}, 'Color', 'w'); 

और यहाँ की साजिश है।

+0

वाह! यह एक बहुत ही सुरुचिपूर्ण और अविश्वसनीय रूप से समझाया गया समाधान है। आपका बहुत बहुत धन्यवाद! –

+0

सीरियल तिथियों के साथ काम करने वाले लोगों के लिए, आपको प्रत्येक प्लॉट के बाद एक अलग अक्ष पर 'डेटाेटिक' कमांड जोड़ना होगा। उदाहरण के लिए, कल्पना करें कि आप बाएं धुरी पर पहले प्लॉट करते हैं, फिर 'डेटेटिक' पर कॉल करें, और फिर आप नीचे दाएं अक्ष पर प्लॉट करने के लिए आगे बढ़ते हैं, फिर आप फिर से 'डेटेटिक' कहते हैं, और फिर आप शीर्ष दाएं धुरी पर जाते हैं, और आपको फिर से 'डेटेटिक' कॉल करना चाहिए। यह सुनिश्चित करता है कि आपके एक्स-अक्ष ठीक से गठबंधन हैं। –

+0

एक शीर्षक जोड़ना आंकड़ा तोड़ने लगता है, ग्राफ को धक्का दिया जाता है और दूसरा छुपा ग्राफ प्रकट होता है। –

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