البرمجة

تخصيص علامات المحور في ggplot2

لتخصيص علامات الفترة (tick marks) لكل رسم بياني فرعي بشكل مستقل في الرسم البياني المتعدد الفاعليات (facet_wrap) في RStudio، يمكنك استخدام ميزة scale_x_continuous أو scale_x_discrete مع توفير قائمة من القيم لتخصيص العلامات. الهدف هو تغيير علامات المحور السيني (x-axis) لكل رسم بياني فرعي بناءً على الاحتياجات الفردية لكل رسم.

لتحقيق ذلك، يمكنك استخدام مجموعة من الدوال المدرجة أدناه:

R
library(ggplot2) # Define custom tick marks for each subplot custom_ticks <- list( list(0, 5, 10, 15, 20), # Custom ticks for the first subplot list(0, 2, 4, 6, 8), # Custom ticks for the second subplot list(0, 100, 200, 300, 400), # Custom ticks for the third subplot list(0, 50, 100, 150, 200) # Custom ticks for the fourth subplot ) # Create the plot ggplot(data = gdt, aes(x = area)) + geom_histogram(bins = 10, colour = "black", fill = "grey50") + facet_wrap( ~ fires, scales = "free") + labs(x = "Area of Burnt Land (ha)", y = "Fires") + ggtitle("Count of Destructive Fires in Portugal (2007)") + scale_x_continuous( breaks = custom_ticks[[as.numeric(as.factor(gdt$fires))]] )

في هذا المثال، تم استخدام الدالة scale_x_continuous لتحديد العلامات المخصصة لكل رسم بياني فرعي. تم تخزين العلامات المخصصة في قائمة تسمى custom_ticks، حيث تم تعريف علامات مخصصة لكل رسم بياني فرعي على حدة. وباستخدام as.factor(gdt$fires)، يتم تحديد الرسم البياني الفرعي الحالي بناءً على قيمة fires في مجموعة البيانات.

هذه الطريقة تسمح لك بتخصيص علامات المحور السيني بشكل مستقل لكل رسم بياني فرعي، مما يتيح لك تحديد العلامات بالطريقة التي تناسب كل رسم بياني على حدة.

المزيد من المعلومات

بالطبع، يمكننا استكمال المعلومات بشكل أكبر حول كيفية تخصيص علامات المحور السيني (x-axis) لكل رسم بياني فرعي بشكل مستقل في الرسم البياني المتعدد الفاعليات (facet_wrap) في RStudio.

عند تعريف القائمة custom_ticks، يمكنك أيضًا استخدام دوال R لتوليد هذه القيم بشكل ديناميكي، بدلاً من تحديدها يدويًا. على سبيل المثال، يمكنك استخدام دالة seq لتوليد تسلسل من الأرقام بين قيم محددة.

R
# Define custom tick marks dynamically for each subplot custom_ticks <- lapply(unique(gdt$fires), function(fire) { fire_data <- subset(gdt, fires == fire) seq(min(fire_data$area), max(fire_data$area), length.out = 5) })

في هذا المثال، استخدمنا الدالة lapply لتطبيق الدالة المعينة (function) على كل قيمة فريدة في gdt$fires. داخل الدالة المعينة، نقوم بتحديد البيانات التي تنتمي إلى كل قيمة فريدة من fires باستخدام subset، ثم نستخدم seq لتوليد تسلسل من الأرقام بين القيم الدنيا والقيم العليا للمنطقة (area) مع تحديد عدد النقاط المطلوبة (في هذا الحالة، 5 نقاط).

من ثم، يمكن استخدام custom_ticks كما في الشرح السابق:

R
ggplot(data = gdt, aes(x = area)) + geom_histogram(bins = 10, colour = "black", fill = "grey50") + facet_wrap( ~ fires, scales = "free") + labs(x = "Area of Burnt Land (ha)", y = "Fires") + ggtitle("Count of Destructive Fires in Portugal (2007)") + scale_x_continuous( breaks = custom_ticks[[as.numeric(as.factor(gdt$fires))]] )

باستخدام هذا النهج، يمكنك توليد قائمة مخصصة لعلامات المحور السيني بشكل ديناميكي لكل رسم بياني فرعي، مما يزيد من قابلية إعادة استخدام الكود ويسهل تحديث العلامات عند تغيير البيانات.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر