توفر الحزمة ' ggpp ' مجموعة من الكتل البرمجية الإنشائية التي تعمل على توسيع قواعد الرسومات المطبقة في الحزمة 'ggplot2' (>= 3.5.0). تعمل الإضافات على تحسين دعم تسميات البيانات والتعليقات التوضيحية في المخططات. تنفذ دوال الموضع أساليب جديدة للدفع قابلة للاستخدام مع أي شكل هندسي، ولكنها مفيدة بشكل خاص مع geom_text_s()
و geom_label_s()
من هذه الحزمة و geom_text_repel()
و geom_label_repel()
من الحزمة 'ggrepel' (>= 0.9.2). راجع: (https://ggrepel.slowkow.com) للحصول على تعليمات التثبيت وأخبار الإصدارات.
يتم دعم الإحداثيات الرئيسية المقيسة (NPC) أصلاً بواسطة 'ggplot2' >= 3.5.0 عن طريق وظيفة هوية R I()
. لا يتطلب هذا النهج الجديد أشكالًا هندسية خاصة، إذ ينبغي أن يعمل مع كل الأشكال الهندسية الموجودة تقريبًا. ومع ذلك، لا يعمل هذا حاليًا إلا عندما يتم تعيين المتغيرات المستمرة إلى جماليات x و/أو y . إذا تم توسيع هذه الآلية لتشمل عوامل الدعم والمتغيرات المنفصلة الأخرى في المستقبل، فقد تصبح جميع الأشكال الهندسية _npc
من 'ggpp' زائدة عن الحاجة. وفي الوقت نفسه، لا تزال هذه الأشكال الهندسية الخاصة من "ggpp" تسد فجوة، وإن كانت أصغر، في دعم NPC بواسطة "ggplot2".
الفرق بين الملاحظات أو البيانات المعينة لجماليات x و y وتسميات البيانات هو أن تسميات البيانات مرتبطة بإحداثيات البيانات، ولكن موقعها عادة ما يكون قريبًا ولكن ليس بالضبط موقع البيانات. وبعبارة أخرى، فإن موقع تسمية البيانات في إحداثيات x و y يكون مرنًا طالما أنه يمكن استنتاج الارتباط بمراقبة البيانات. في حالة التعليقات التوضيحية، يكون الموقع في منطقة الرسم تعسفيًا، تمليه اعتبارات التصميم الجرافيكي المتاحة ومتطلبات عدم حجب ملاحظات البيانات. في الجدول أدناه، ندرج الأشكال الهندسية المحددة في الحزمة "ggpp": 1) ما إذا كانت مخصصة لتسميات البيانات أو التعليقات التوضيحية أو البيانات، 2) الجماليات والجماليات الزائفة التي تطيعها، و3) ما إذا كان بإمكانها توصيل الأصل موقف البيانات إلى موقف النازحين. يتطلب رسم المقاطع أو الأسهم المتصلة بين المواضع المُزاحة والأصلية، تلك الخاصة بالملاحظة والملصق المُزاح، أيضًا تغييرًا في البيانات التي تُرجعها وظائف الموضع (انظر القسم التالي).
الهندسة | الاستخدام الرئيسي | جماليات | شريحة |
---|---|---|---|
geom_text_s() | تسميات البيانات | x، y، التسمية، الحجم، العائلة، وجه الخط، اللون، ألفا، المجموعة، الزاوية، vjust، hjust | نعم |
geom_label_s() | تسميات البيانات | x، y، التسمية، الحجم، العائلة، وجه الخط، اللون، التعبئة، ألفا، عرض الخط، نوع الخط، المجموعة، vjust، hjust | نعم |
geom_text_pairwise() | تسميات البيانات | x، xmin، xmax، y، التسمية، الحجم، العائلة، وجه الخط، اللون، ألفا، المجموعة، الزاوية، vjust، hjust | هوريز. |
geom_label_pairwise() | تسميات البيانات | x، xmin، xmax، y، التسمية، الحجم، العائلة، وجه الخط، اللون، التعبئة، ألفا، عرض الخط، نوع الخط، المجموعة، vjust، hjust | هوريز. |
geom_point_s() | تسميات البيانات | X، Y، الحجم، اللون، التعبئة، ألفا، الشكل، السكتة الدماغية، المجموعة | نعم |
geom_table() 1 | تسميات البيانات | x، y، التسمية، الحجم، العائلة، وجه الخط، اللون، ألفا، المجموعة، الزاوية، vjust، hjust | نعم |
geom_plot() 1 ، geom_grob() 1 | تسميات البيانات | x، y، التسمية، المجموعة، الزاوية، vjust، hjust | نعم |
geom_margin_arrow() | تسميات البيانات، تسميات النطاق، البيانات | xintercept، yintercept، التسمية، الحجم، العائلة، وجه الخط، اللون، ألفا، المجموعة، vjust، hjust | لا |
geom_margin_point() | تسميات البيانات، تسميات النطاق، البيانات | xintercept، yintercept، التسمية، الحجم، العائلة، وجه الخط، اللون، ألفا، المجموعة، vjust، hjust | لا |
geom_margin_grob() | تسميات البيانات، تسميات النطاق، البيانات | xintercept، yintercept، التسمية، الحجم، العائلة، وجه الخط، اللون، ألفا، المجموعة، vjust، hjust | لا |
geom_quadrant_lines() ، geom_vhlines() | تسميات البيانات، تسميات النطاق، البيانات | xintercept، yintercept، التسمية، الحجم، العائلة، وجه الخط، اللون، ألفا، المجموعة، vjust، hjust | لا |
الأشكال الهندسية المحددة في الحزمة "ggpp". 1 توجد إصدارات NPC لهذه الأشكال الهندسية، بالإضافة إلى geom_text()
و geom_label()
، المستخدمة بشكل أساسي في التعليقات التوضيحية للمخطط.
على النقيض من وظائف الموضع من "ggplot2"، فإن جميع وظائف الموضع من الحزمة "ggpp" قادرة على الاحتفاظ بإحداثيات x و y الأصلية تحت اسم مختلف في كائن data
عند نقلها إلى موضع جديد. وهذا يجعلها متوافقة مع geom_text_s()
و geom_label_s()
و geom_point_s()
و geom_table()
و geom_plot()
و geom_grob()
من هذه الحزمة. يمكن لجميع هذه العناصر الجغرافية رسم مقاطع أو أسهم تربط المواضع الأصلية بالمواضع المُزاحة. تظل متوافقة مع الإصدارات السابقة ويمكن استخدامها في جميع الأشكال الهندسية التي لها معلمة رسمية position
. يشبه هذا النهج المستخدم في الحزمة 'ggrepel' (<= 0.9.1) ولكنه يستخدم اصطلاح تسمية مختلفًا يسمح لوظائف الموضع الجديدة بالبقاء متوافقة مع الإصدارات السابقة مع 'ggplot2'. بدءًا من الإصدار 0.9.2، تتوافق الأشكال الهندسية geom_text_repel()
و geom_label_repel()
من الحزمة 'ggrepel' تمامًا مع اصطلاح التسمية الجديد هذا.
وظائف الموضع position_nudge_keep()
و position_nudge_to()
و position_nudge_center()
و position_nudge_line()
تنفذ نكهات مختلفة من الدفع. تتيح الوظيفتان الأخيرتان إمكانية تطبيق الدفع الذي يتغير تلقائيًا وفقًا للموضع النسبي لنقاط البيانات فيما يتعلق بالنقاط أو الخطوط العشوائية، أو فيما يتعلق بخط متعدد الحدود أو خط تنعيم يتم تركيبه بسرعة على الملاحظات.
وظائف الموضع position_stacknudge()
و position_fillnudge()
و position_jitternudge()
و position_dodgenudge()
و position_dodge2nudge()
تجمع كل من أدوار وظيفتين للموضع . إنها تجعل من الممكن دفع الملصقات بسهولة في طبقات الرسم التي تستخدم التراص أو المراوغة أو الارتعاش. تتصرف الوظائف position_jitter_keep()
و position_stack_keep()
و position_fill_keep()
و position_dodge_keep()
و position_dosge2_keep()
مثل المواضع من "ggplot2" ولكنها تحتفظ بالإحداثيات الأصلية في كائن data
.
موضع | الاستخدام الرئيسي | النزوح | الأكثر استخدامًا مع |
---|---|---|---|
position_nudge_keep() | دفعة | س، ص (مسافة ثابتة) | تسميات البيانات |
position_jitter_keep() | غضب | س، ص (عشوائي) | المؤامرات نقطة |
position_stack_keep() | كومة | عمودي (مطلق) | مؤامرات العمود والشريط |
position_stack_minmax() | كومة | عمودي (مطلق) | أشرطة الخطأ |
position_fill_keep() | يملأ | عمودي (نسبي، كسري) | مؤامرات العمود |
position_dodge_keep() | مراوغة | جانبية (مطلقة) | مؤامرات العمود والشريط |
position_dosge2_keep() | دودج2 | جانبية (مطلقة) | مؤامرات الصندوق |
position_nudge_to() | دفعة | س، ص (موضع ثابت) | تسميات البيانات |
position_nudge_center() | دفعة | x، y (بعيدًا أو باتجاه الهدف) | تسميات البيانات |
position_nudge_line() | دفعة | x، y (بعيدًا أو باتجاه الهدف) | تسميات البيانات |
position_stacknudge() | كومة + دفعة | مجتمعة، انظر أعلاه | تسميات البيانات في مخططات الأعمدة |
position_fillnudge() | ملء + دفعة | مجتمعة، انظر أعلاه | تسميات البيانات في مخططات الأعمدة |
position_jitternudge() | غضب + دفعة | مجتمعة، انظر أعلاه | تسميات البيانات في المؤامرات النقطية |
position_dodgenudge() | دودج + دفع | مجتمعة، انظر أعلاه | تسميات البيانات في مخططات الأعمدة |
position_dodge2nudge() | دودج 2 + دفعة | مجتمعة، انظر أعلاه | تسميات البيانات في مخططات الصندوق |
وظائف الموضع المحددة في الحزمة "ggpp".
تساعد الإحصائيات stat_fmt_tb()
في تنسيق الجداول التي سيتم رسمها باستخدام geom_table()
.
أربع إحصائيات، stat_dens2d_filter()
و stat_dens2d_label()
و stat_dens1d_filter()
و stat_dens1d_label()
، تنفذ وضع العلامات أو التصنيف الانتقائي للملاحظات بناءً على كثافة الملاحظات ثنائية الأبعاد المحلية في اللوحة. هناك إحصائيات أخرى، stat_dens1d_filter_g()
و stat_dens1d_filter_g()
تحسب الكثافة حسب المجموعة بدلاً من لوحة الرسم. تم تصميم هذه الإحصائيات الستة لتعمل بشكل جيد مع geom_text_repel()
و geom_label_repel()
من الحزمة 'ggrepel' (>= 0.8.0).
تعتبر الإحصائيات stat_apply_panel()
و stat_apply_group()
مفيدة لتطبيق وظائف عشوائية تقوم بإرجاع ناقلات رقمية مثل cumsum()
و cummax()
و diff()
. تسمح الإحصائيات stat_centroid()
و stat_summary_xy()
بحساب الملخصات على كل من x و y وتمريرها إلى Geom.
تعمل الإحصائيات stat_quadrant_counts()
و stat_panel_counts()
على تسهيل إضافة تعليقات توضيحية إلى المخططات بعدد الملاحظات.
إحصائية | الاستخدام الرئيسي | الهندسات المعتادة | الأكثر استخدامًا مع | وظيفة الحساب |
---|---|---|---|---|
stat_fmt_tb() | التنسيق والاختيار | geom_table() | الجداول كتسميات البيانات | مجموعة |
stat_fmt_tb() | التنسيق والاختيار | geom_table_npc() | الجداول كتعليقات توضيحية | مجموعة |
stat_dens2d_filter() | تصفية الكثافة المحلية ثنائية الأبعاد | geom_text_s() ، geom_label_s() ، geom_text() ، geom_label() | النص كتسميات البيانات | لوحة |
stat_dens2d_label() | تصفية الكثافة المحلية ثنائية الأبعاد | geom_text_repel() ، geom_label_repel() | النص كتسميات البيانات | لوحة |
stat_dens1d_filter() | تصفية الكثافة المحلية 1D | geom_text_s() ، geom_label_s() ، geom_text() ، geom_label() | النص كتسميات البيانات | لوحة |
stat_dens1d_label() | تصفية الكثافة المحلية 1D | geom_text_repel() ، geom_label_repel() | النص كتسميات البيانات | لوحة |
stat_dens2d_filter_g() | تصفية الكثافة المحلية ثنائية الأبعاد | geom_text_s() ، geom_label_s() ، geom_text() ، geom_label() | النص كتسميات البيانات | مجموعة |
stat_dens2d_label_g() | تصفية الكثافة المحلية ثنائية الأبعاد | geom_text_repel() ، geom_label_repel() | النص كتسميات البيانات | مجموعة |
stat_dens1d_filter_g() | تصفية الكثافة المحلية 1D | geom_text_s() ، geom_label_s() ، geom_text() ، geom_label() | النص كتسميات البيانات | مجموعة |
stat_dens1d_label_g() | تصفية الكثافة المحلية 1D | geom_text_repel() ، geom_label_repel() | تسميات البيانات | مجموعة |
stat_panel_counts() | عدد الملاحظات | geom_text() ، geom_label() | النص كتعليق توضيحي | لوحة |
stat_group_counts() | عدد الملاحظات | geom_text() ، geom_label() | النص كتعليق توضيحي | لوحة |
stat_quadrant_counts() | عدد الملاحظات | geom_text() ، geom_label() | النص كتعليق توضيحي | لوحة |
stat_apply_panel() | ملخصات تراكمية | geom_point() و geom_line() وما إلى ذلك. | مبعثر والمؤامرات الخطية | لوحة |
stat_apply_group() | ملخصات تراكمية | geom_point() و geom_line() وما إلى ذلك. | مبعثر والمؤامرات الخطية | مجموعة |
stat_centroid() | ملخصات x و y المشتركة | geom_point() و geom_rug() و geom_margin_arrow() وما إلى ذلك. | ملخص البيانات | مجموعة |
stat_summary_xy() | ملخصات x و y المشتركة | geom_point() و geom_rug() و geom_margin_arrow() وما إلى ذلك. | ملخص البيانات | مجموعة |
stat_functions() | حساب y من نطاق x | geom_line() و geom_point() وما إلى ذلك. | رسم منحنيات الوظيفة | مجموعة |
الإحصائيات المحددة في الحزمة "ggpp".
تقوم التبريرات "outward_mean"
و "inward_mean"
و "outward_median"
و "inward_median"
بتنفيذ تبرير خارجي وداخلي بالنسبة إلى المركز الأوسط للبيانات بدلاً من مركز البيانات "position"
التبرير التبرير على الحافة الأقرب إلى الموضع الأصلي. يعمل هذا فقط مع وظائف الموضع التي تحفظ الموقع الأصلي باستخدام اصطلاح التسمية المطبق في 'ggpp'، وإلا فإن التبرير الافتراضي يعود إلى "center"
/ "middle"
.
هذه الحزمة هي "عرضية" من الحزمة "ggpmisc" التي تحتوي على امتدادات للقواعد المكتوبة في الأصل للاستخدام مع "ggpmisc". مع نمو حجم "ggpmisc"، كان تقسيمه إلى حزمتين ضروريًا لسهولة التطوير والصيانة وتسهيل الاستيراد إلى حزم أخرى. في الوقت الحالي، تقوم الحزمة 'ggpmisc' باستيراد وإعادة تصدير كافة التعريفات المرئية من 'ggpp'.
تمثل المخططات أدناه بعض الأشياء التي يتيحها "ggpp" أو تجعل عملية البرمجة أسهل مقارنة بـ "ggplot" المستخدم بمفرده. يتم توفير أمثلة إضافية بما في ذلك العديد من الجمع بين 'ggpp' و'ggrepel' في المقالة القصيرة للحزمة.
library( ggpp )
library( ggrepel )
library( dplyr )
مؤامرة مع جدول داخلي.
mtcars % > %
group_by( cyl ) % > %
summarize( wt = mean( wt ), mpg = mean( mpg )) % > %
ungroup() % > %
mutate( wt = sprintf( " %.2f " , wt ),
mpg = sprintf( " %.1f " , mpg )) - > tb
df <- tibble( x = 5.45 , y = 34 , tb = list ( tb ))
ggplot( mtcars , aes( wt , mpg , colour = factor ( cyl ))) +
geom_point() +
geom_table( data = df , aes( x = x , y = y , label = tb ))
قطعة أرض مع قطعة أرض داخلية.
تم وضع قطعة الأرض الداخلية باستخدام إحداثيات قطعة الأرض الأصلية (npc) باستخدام القيم الرقمية في النطاق 0..1 مع I()
.
p <- ggplot( mtcars , aes( factor ( cyl ), mpg , colour = factor ( cyl ))) +
stat_boxplot() +
labs( y = NULL , x = " Engine cylinders (number) " ) +
theme_bw( 9 ) + theme( legend.position = " none " )
ggplot( mtcars , aes( wt , mpg , colour = factor ( cyl ))) +
geom_point( show.legend = FALSE ) +
annotate( " plot " , x = I( 0.05 ), y = I( 0.05 ), label = p ,
hjust = " inward " , vjust = " inward " ) +
expand_limits( y = 0 , x = 0 )
الوسائل المحسوبة على الطاير وتظهر كعلامات نجمية.
ggplot( mtcars , aes( wt , mpg , colour = factor ( cyl ))) +
geom_point() +
stat_centroid( shape = " asterisk " , size = 6 )
تظهر الوسائط المحسوبة أثناء التنقل على شكل أسهم هامشية. تسميات مع عدد الملاحظات لكل مجموعة.
ggplot( mtcars , aes( wt , mpg , colour = factor ( cyl ))) +
geom_point() +
stat_centroid( geom = " y_margin_arrow " , .fun = median ,
aes( yintercept = after_stat( y )), arrow.length = 0.05 ) +
stat_group_counts( vstep = 0 , hstep = 0.09 )
df <- data.frame ( x1 = c( 1 , 2 , 1 , 3 , - 1 ),
x2 = c( " a " , " a " , " b " , " b " , " b " ),
grp = c( " some long name " , " other name " , " some name " ,
" another name " , " a name " ))
# Add labels to a horizontal column plot (stacked by default)
ggplot( data = df , aes( x2 , x1 , group = grp )) +
geom_col(aes( fill = grp ), width = 0.5 ) +
geom_hline( yintercept = 0 ) +
geom_text(
aes( label = grp ),
position = position_stacknudge( vjust = 1 , y = - 0.2 )) +
theme( legend.position = " none " )
تثبيت أحدث إصدار ثابت من CRAN (المصادر، ثنائيات Mac وWin):
install.packages( " ggpp " )
تثبيت الإصدار الحالي غير المستقر من مستودع يشبه R-Universe CRAN (ثنائيات لنظام التشغيل Mac وWin وWebassembly وLinux، بالإضافة إلى المصادر المتاحة):
install.packages( ' ggpp ' ,
repos = c( ' https://aphalo.r-universe.dev ' ,
' https://cloud.r-project.org ' ))
تثبيت الإصدار الحالي غير المستقر من GitHub (من المصادر):
# install.packages("devtools")
devtools :: install_github( " aphalo/ggpp " )
تتوفر وثائق HTML الخاصة بالحزمة، بما في ذلك صفحات المساعدة ودليل المستخدم ، على (https://docs.r4photobiology.info/ggpp/).
يتم نشر الأخبار حول التحديثات على (https://www.r4photobiology.info/).
يشرح الفصل 7 في Aphalo (2020) والفصل 9 في Aphalo (2024) المفاهيم الأساسية لقواعد الرسومات كما تم تنفيذها في "ggplot2" بالإضافة إلى ملحقات هذه القواعد بما في ذلك العديد من تلك التي توفرها الحزمتان "ggpp" و"ggpmisc" '. المعلومات المتعلقة بالكتاب متاحة على https://www.learnr-book.info/.
يرجى الإبلاغ عن الأخطاء وطلب ميزات جديدة على (https://github.com/aphalo/ggpp/issues). نرحب بطلبات السحب على (https://github.com/aphalo/ggpp).
إذا كنت تستخدم هذه الحزمة لإنتاج منشورات علمية أو تجارية، فيرجى الاستشهاد بما يلي:
citation( " ggpp " )
# > To cite package 'ggpp' in publications use:
# >
# > Aphalo P (2024). _ggpp: Grammar Extensions to 'ggplot2'_. R package
# > version 0.5.8-1, <https://CRAN.R-project.org/package=ggpp>.
# >
# > A BibTeX entry for LaTeX users is
# >
# > @Manual{,
# > title = {ggpp: Grammar Extensions to 'ggplot2'},
# > author = {Pedro J. Aphalo},
# > year = {2024},
# > note = {R package version 0.5.8-1},
# > url = {https://CRAN.R-project.org/package=ggpp},
# > }
نظرًا لكونه امتدادًا للحزمة "ggplot2"، فقد تم إنشاء بعض التعليمات البرمجية الموجودة في الحزمة "ggpp" باستخدام قالب من وظائف الطبقة والمقاييس في "ggplot2". تهدف واجهة المستخدم الخاصة بـ "ggpp" إلى أن تكون متسقة قدر الإمكان مع "ggplot2" وقواعد الرسومات ذات الطبقات (Wickham 2010). تتم إضافة الميزات الجديدة المضافة في "ggplot2" عندما تكون ذات صلة بـ "ggpp"، مثل دعم orientation
لقلب الطبقات. وبالتالي، تتضمن هذه الحزمة بشكل غير مباشر مساهمات مهمة من العديد من المؤلفين والمشرفين على "ggplot2"، المدرجين في (https://ggplot2.tidyverse.org/).
إن تنسيق التطوير من خلال التبادل الودي للأفكار والمساهمات المتبادلة من قبل Kamil Slowikowski إلى 'ggpp' ومن خلالي أنا إلى 'ggrepel' جعل الحزمتين متوافقتين تمامًا.
أفالو، بيدرو ج. (2024) تعلم لغة R: كلغة. 2ed. سلسلة R. بوكا راتون ولندن: تشابمان وهال / مطبعة اتفاقية حقوق الطفل. ردمك: 9781032516998. 466 ص.
أفالو، بيدرو ج. (2020) تعلم لغة R: كلغة. 1ed. سلسلة R. بوكا راتون ولندن: تشابمان وهال / مطبعة اتفاقية حقوق الطفل. ردمك: 9780367182533. 350 ص.
ويكهام، هادلي. 2010. "قواعد متعددة الطبقات للرسومات". مجلة الإحصائيات الحسابية والرسومية 19 (1): 3-28. https://doi.org/10.1198/jcgs.2009.07098.
© 2016-2024 بيدرو ج. أفالو ([email protected]). تم إصداره بموجب GPL، الإصدار 2 أو أحدث. هذا البرنامج لا يحمل أي ضمان من أي نوع.