كيفية إنشاء مقياس لوغاريتمي في ggplot2
غالبًا ما قد ترغب في تحويل مقياس المحور السيني أو المحور الصادي لمخطط ggplot2 إلى مقياس لوغاريتمي.
يمكنك استخدام إحدى الطريقتين للقيام بذلك باستخدام ggplot2 فقط:
1. استخدمscale_y_continious() أوscale_x_continious()
ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ') + scale_x_continuous(trans=' log10 ')
2. استخدم format_trans()
ggplot(df, aes (x=x, y=y)) + geom_point() + coord_trans(y = ' log10 ' , x=' log10 ')
إذا كنت تريد تنسيق تسميات المحاور لعرض الأسس، فيمكنك استخدام الوظائف الموجودة في حزمة المقاييس :
ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ', breaks= trans_breaks (' log10 ', function (x) 10^x), labels= trans_format (' log10 ', math_format (10^.x)))
يوضح هذا البرنامج التعليمي أمثلة على كيفية استخدام هذه الوظائف عمليًا.
مثال 1: المقياس اللوغاريتمي باستخدام Scale_y_continious()
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة scale_y_continious() لإنشاء مقياس لوغاريتمي للمحور y لمخطط مبعثر:
library (ggplot2) #create data frame df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18), y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000)) #create scatterplot with log scale on y-axis ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ')
المثال 2: المقياس اللوغاريتمي باستخدام coord_trans()
يوضح التعليمة البرمجية التالية كيفية استخدام الدالة coord_trans() لإنشاء مقياس لوغاريتمي للمحور y لمخطط مبعثر:
library (ggplot2) #create data frame df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18), y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000)) #create scatterplot with log scale on y-axis ggplot(df, aes (x=x, y=y)) + geom_point() + coord_trans(y=' log10 ')
مثال 3: تسميات المقياس اللوغاريتمي المخصصة
يوضح التعليمة البرمجية التالية كيفية استخدام الوظائف في حزمة المقاييس لإنشاء مقياس لوغاريتمي للمحور y لمخطط التشتت وإضافة تسميات مخصصة مع الأسس:
library (ggplot2) library (scales) #create data frame df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18), y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000)) #create scatterplot with log scale on y-axis and custom labels ggplot(df, aes (x=x, y=y)) + geom_point() + scale_y_continuous(trans=' log10 ', breaks= trans_breaks (' log10 ', function (x) 10^x), labels= trans_format (' log10 ', math_format (10^.x)))
لاحظ أن تسميات المحور Y لها أسس، على عكس المخططين السابقين.
مصادر إضافية
الدليل الكامل لعناوين ggplot2
دليل كامل لأفضل موضوعات ggplot2
كيفية إنشاء قطع أرض جنبًا إلى جنب في ggplot2