سؤال
عندما كنت مؤامرة الأشياء في 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);
لا تنتمي إلى StackOverflow