matlab - मेटलैब में दो एक्स अक्ष को एक भूखंड कैसे सम्मिलित करें




plot matlab-figure (2)

एक बहुत ही सरल विकल्प के रूप में आप एक दूसरे अक्ष (पारदर्शी) भी बना सकते हैं और इसे पहले एक के नीचे रख सकते हैं ताकि आप केवल एक्स अक्ष देख सकें

उदाहरण:

clear
clc
close all

x = 1:10;

x2 = x/3.6;

y = rand(size(x));

hP1 = plot(x,y);

a1Pos = get(gca,'Position');

%// Place axis 2 below the 1st.
ax2 = axes('Position',[a1Pos(1) a1Pos(2)-.05 a1Pos(3) a1Pos(4)],'Color','none','YTick',[],'YTickLabel',[]);

%// Adjust limits
xlim([min(x2(:)) max(x2(:))])

text(2.85,0 ,'m/s','FontSize',14,'Color','r')
text(2.85,.05 ,'km/h','FontSize',14,'Color','r')

आउटपुट:

उसके बाद आप प्रत्येक इकाई के लिए मैन्युअल रूप से एक्स लेबल जोड़ सकते हैं, उदाहरण के लिए अलग-अलग रंग में।

मैं एक ही साजिश के साथ एक डबल एक्स अक्ष (एम / एस और किमी / एच) के साथ एक Matlab आकृति बनाना चाहूंगा

मैंने साजिश रचने वाले और - Matlab reposity - plotyyy मिल गया है, लेकिन मैं के लिए देख रहा हूँ:

  1. एक डबल एक्स अक्ष
  2. साजिश के नीचे एक साथ।

मेरा कोड बहुत सरल है:

stem(M(:, 1) .* 3.6, M(:, 3));

grid on

xlabel('Speed (km/h)');
ylabel('Samples');

M(:, 1) गति (एम / एस में) है, और M(:, 3) डेटा है

मुझे केवल एक दूसरी पंक्ति है, नीचे, मी / एस में गति के साथ


मैं इसे करने के लिए सबसे अच्छा तरीका 2 भूखंडों का उपयोग करना है, उदाहरण के लिए, आप इस तरह से कुछ करके बड़े और छोटे खंड में भूखंड को विभाजित कर सकते हैं:

subplot(100, 1, 1:99) // plot your graph as you normally would
plot(...

subplot(100, 1, 100) // Plot a really small plot to get the axis
plot(...)
b = axis()
axis([b(1:2), 0, 0]) // set the y axis to really small

यह अनुचित नहीं है, आपको थोड़ा सा बेला होना पड़ सकता है लेकिन आपको उम्मीद है कि आपको सही रास्ते पर जाना चाहिए।