كيفية رسم سلسلة زمنية في لغة r (مع أمثلة)
في كثير من الأحيان، قد ترغب في رسم سلسلة زمنية في R لتصور كيفية تغير القيم في السلسلة الزمنية مع مرور الوقت.
يشرح هذا البرنامج التعليمي كيفية القيام بذلك بسرعة باستخدام مكتبة تصور البيانات ggplot2 .
رسم السلاسل الزمنية الأساسية في R
لنفترض أن لدينا مجموعة البيانات التالية في R:
#create dataset df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:99, sales = runif (100, 10, 500) + seq (50, 149)^2) #view first six rows head(df) dirty date 1 2021-01-01 2845.506 2 2020-12-31 2837.849 3 2020-12-30 3115.517 4 2020-12-29 2847.161 5 2020-12-28 3374.619 6 2020-12-27 3182.005
يمكننا استخدام الكود التالي لإنشاء مخطط سلسلة زمنية أساسية لمجموعة البيانات هذه باستخدام ggplot2:
library (ggplot2) #create time series plot p <- ggplot(df, aes (x=date, y=sales)) + geom_line() #display time series plot p
تنسيق التواريخ على المحور X
يمكننا استخدام الدالة scale_x_date() * لتنسيق التواريخ المعروضة على طول المحور السيني للمخطط. تأخذ هذه الوظيفة الوسائط التالية:
- %d: يوم كرقم بين 0 و31
- %a: يوم عمل مختصر (على سبيل المثال “الثلاثاء”)
- %A: يوم غير مختصر من الأسبوع (على سبيل المثال “الثلاثاء”)
- %m : الأشهر بين 0 و 12
- %b: الشهر المختصر (على سبيل المثال “يناير”)
- %B: شهر غير مختصر (على سبيل المثال “يناير”)
- %y: سنة مكونة من رقمين (على سبيل المثال “21”)
- %Y: سنة مكونة من 4 أرقام (على سبيل المثال “2021”)
- %W: أسبوع السنة بين 0 و52
* لكي تعمل هذه الوظيفة، يجب أن يكون متغير المحور السيني متغير تاريخ. إذا لم يكن كذلك بالفعل، فيمكنك تحويله بسرعة إلى واحد باستخدام as.Date( variable_name) .
يوضح الكود التالي كيفية استخدام أحد هذه التنسيقات عمليًا:
p + scale_x_date ( date_labels = " %b %Y ")
يمكنك أيضًا إضافة فواصل متكررة (أو غير متكررة) على طول المحور السيني باستخدام وسيطة date_breaks . على سبيل المثال، يمكننا عرض التواريخ كل أسبوعين على طول المحور السيني:
p + scale_x_date ( date_breaks = " 2 week ")
يمكننا أيضًا تحريف تسميات المحور السيني بسهولة باستخدام الوسيطة التالية:
p + theme ( axis.text.x = element_text (angle= 50 , hjust= 1 ))
أخيرًا، يمكننا تغيير السمة وتسميات المحاور والعنوان لجعل مؤامرة السلسلة الزمنية أكثر جاذبية من الناحية المرئية:
p <- ggplot(df, aes (x=date, y=sales)) + geom_line( color =" turquoise4 ") + theme_minimal() + labs(x="", y=" Sales ", title=" Total Sales (Past 100 Days) ") + theme( plot.title = element_text (hjust=0.5, size=20, face=" bold ")) p
مصادر إضافية
دليل كامل لأفضل موضوعات ggplot2
الدليل الكامل لعناوين ggplot2
كيفية إنشاء قطع أرض جنبًا إلى جنب في ggplot2