محور

  • تخصيص علامات المحور في 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))]] )

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

  • تنسيق أرقام محور الرسم البياني في ggplot2

    لتغيير عدد الأماكن العشرية على تسميات المحور في ggplot2، يمكنك استخدام معامل labels في scale_y_continuous. لكن قبل ذلك، يجب عليك تحديد الوظيفة التي تستخدم لتنسيق الأرقام بالطريقة التي تريدها.

    على سبيل المثال، إذا أردت أن تكون جميع الأرقام على المحور الصَّفوف بدقتين بعد الفاصلة، حتى لو كان الرقم الثاني عشريًا، فيمكنك استخدام دالة sprintf في R لتنسيق الأرقام. يمكنك تضمين هذا في labels داخل scale_y_continuous.

    للقيام بذلك، يمكنك تعريف دالة مخصصة لتنسيق الأرقام، ثم استخدامها في scale_y_continuous كما يلي:

    r
    # تعريف دالة لتنسيق الأرقام بعد الفاصلة format_decimals <- function(x) { sprintf("%.2f", x) # يجعل كل الأرقام بدقتين بعد الفاصلة } row1 <- ggplot(sector_data[sector_data$sector %in% pages[[x]],], aes(date,price)) + geom_line() + geom_hline(yintercept=0,size=0.3,color="gray50") + facet_grid( ~ sector) + scale_x_date( breaks='1 year', minor_breaks = '1 month') + scale_y_continuous(labels = format_decimals) + # استخدام الدالة المخصصة هنا theme(panel.grid.major.x = element_line(size=1.5), axis.title.x=element_blank(), axis.text.x=element_blank(), axis.title.y=element_blank(), axis.text.y=element_text(size=8), axis.ticks=element_blank() )

    بهذه الطريقة، ستتمكن من الحصول على جميع الأرقام على محور الصَّفوف بدقتين بعد الفاصلة كما ترغب، بغض النظر عن ما إذا كان الرقم الثاني عشريًا أو لا.

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

    بالطبع، هناك مزيد من المعلومات التي يمكن تقديمها لتوسيع فهمك لكيفية تغيير عدد الأماكن العشرية على تسميات المحور في ggplot2.

    1. استخدام تنسيق مخصص: بجانب استخدام الدالة sprintf، يمكنك أيضًا استخدام دوال أخرى لتنسيق الأرقام بطريقة مخصصة وفقًا لاحتياجاتك. على سبيل المثال، يمكنك استخدام دالة round لتقريب الأرقام إلى عدد معين من الأماكن العشرية.

    2. استخدام الحزم الإضافية: هناك العديد من الحزم الإضافية في R التي توفر وظائف لتنسيق الأرقام بشكل متقدم، مثل scales و formattable. يمكنك استكشاف هذه الحزم لاختيار الوظيفة التي تلبي احتياجاتك.

    3. التحكم في العرض العام للرسم البياني: بالإضافة إلى تنسيق الأرقام على محور الصفوف، يمكنك أيضًا التحكم في العرض العام للرسم البياني بواسطة تعديل خصائص أخرى، مثل الخطوط، والألوان، والعناصر النصية. يمكنك استخدام هذه الخصائص لتخصيص الرسم البياني بشكل أكبر وجعله أكثر جاذبية وفعالية.

    4. التوثيق والبحث الإضافي: يمكنك دائمًا الاطلاع على التوثيق الرسمي لـ ggplot2 ومصادر أخرى عبر الإنترنت للحصول على مزيد من المعلومات والأمثلة حول كيفية تغيير عدد الأماكن العشرية على تسميات المحور وتنسيق الرسم البياني بشكل عام.

    باستخدام هذه الإرشادات والمعلومات الإضافية، يمكنك تعديل رسمك البياني في ggplot2 بشكل مخصص وفقًا لاحتياجاتك وتفضيلاتك الشخصية.

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

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

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