سؤال

عندما كنت مؤامرة الأشياء في Matlab ، مؤخرا رسم سلسلة بيانات يتم وضعها على أعلى من كل ما هو بالفعل هناك.على سبيل المثال:

figure; hold on
plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1])
plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0])

هنا خط أحمر يظهر على الجزء العلوي من الخط الأزرق (حيث تتقاطع).هل هناك أي طريقة أن مجموعة "مدى عمق" يتم رسم خط ، بحيث يمكنك رسم الأشياء تحت ما هو بالفعل هناك ؟

هل كانت مفيدة؟

المحلول

استخدام uistack الأوامر.على سبيل المثال:

h1 = plot(1:10, 'b');
hold on;
h2 = plot(1:10, 'r');

سوف مؤامرة خطين مع الخط الأحمر تآمر على أعلى من الخط الأزرق.إذا كنت ثم القيام:

uistack(h1);

الخط الأزرق سيتم تقديمهم إلى الجبهة.

نصائح أخرى

ويمكنك أيضا تحقيق ذلك من خلال وضع ترتيب ناقلات الأطفال من المحاور الحالية. إذا كنت تفعل ما يلي:

figure; hold on
h1 = plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1]);
h2 = plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0]);
h = get(gca, 'Children');

وسترى أن ساعة هو متجه تحتوي على H1 و H2. ويمثل ترتيب التراص رسومية بأمر من مقابض في ح. في هذا المثال، لعكس ترتيب التراص يمكن أن تفعله:

h = flipud(h);
set(gca, 'Children', h);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top