
در این مقاله یاد می گیرید که چگونه یک نمودار با چند سری زمانی در زبان برنامه نویسی R ایجاد کنید.
پست حاوی موضوعات زیر است:
بیا شروع کنیم.
ایجاد داده های نمونه
ابتدا باید داده هایی بسازیم که می توانیم در مثال های زیر استفاده کنیم:
تنظیم.دانه(1023172) # داده های نمونه تصادفی ایجاد کنیدداده هاگرد(داده ها.قاب(سال= 2001:2025، ts1= 1:25 +orm(25)، ts2= 30:6 +runif(25, 0, 10)، ts3=orm(25, 5, 5)))سر(داده ها) # سر نمونه داده ها # سال ts1 ts2 ts3 # 1 2001 1 33 9 # 2 2002 1 31 0 # 3 2003 2 3 1-9 # 4 2004 4 33 4 # 5 2005 6 33 4 # 6 2006 6 35 5
خروجی قبلی کنسول RStudio نشان می دهد که داده های مثال ما دارای چهار ستون است. متغیر سال محدوده زمانی را تعریف می کند و متغیرهای ts1، ts2 و ts3 حاوی مقادیر متناظر سه سری زمانی مختلف هستند.
مثال 1: ترسیم چند سری زمانی در پایه R
در مثال 1، نحوه رسم نموداری که چندین سری زمانی را با استفاده از نصب اولیه زبان برنامه نویسی R نشان می دهد، نشان خواهم داد.
به طور دقیق تر، باید از توابع نمودار، خطوط و افسانه به صورت زیر استفاده کنیم:
طرح(داده$سال،# اولین سری زمانی را بکشیدdata$ts1، نوع= "ل"، سرهنگ= 2، یلیم= c(- 15, 40)، xlab= "سال"، یلاب= "ارزش های")خطوط(داده$سال،# سری دوم را بکشیدdata$ts2، نوع= "ل"، سرهنگ= 3)خطوط(داده$سال،# سری سوم را رسم کنیدdata$ts3، نوع= "ل"، سرهنگ= 4)افسانه("بالا سمت راست", # افسانه را به طرح اضافه کنید c("ts1", "ts2", "ts3")، lty= 1، سرهنگ= 2:4)
همانطور که در شکل 1 نشان داده شده است، ما یک گرافیک سری زمانی ایجاد کردیم که حاوی چندین خط با نحو قبلی است.
مثال 2: ترسیم چند سری زمانی با استفاده از بسته ggplot2
در مثال 2، نحوه رسم چندین سری زمانی را با استفاده از بسته ggplot2 در R نشان خواهم داد.
بسته ggplot2 معمولاً داده های طولانی را به عنوان ورودی می گیرد. به همین دلیل، ابتدا باید از بسته reshape2 برای تبدیل قاب داده خود از فرمت گسترده به طولانی استفاده کنیم.
اگر بخواهیم از توابع موجود در بسته الحاقی استفاده کنیم، ابتدا باید بسته reshape2 را نصب و بارگذاری کنیم:
نصب.بسته ها("تغییر شکل 2") # بسته reshape2 را نصب کنیدکتابخانه("تغییر شکل 2") # بسته reshape2 را بارگیری کنیداکنون، می توانیم با استفاده از تابع melt، داده های خود را از قالب گسترده به طولانی تغییر شکل دهیم:
data_longذوب شدن(داده، شناسه.vars = "سال") # تغییر شکل داده ها به قالب طولانیسر(data_long) # رئیس داده های طولانی مقدار متغیر # سال # 1 2001 ts1 1 # 2 2002 ts1 1 # 3 2003 ts1 2 # 4 2004 ts1 4 # 5 2005 ts1 6 # 6 2006 ts1 6
علاوه بر این، ما باید بسته ggplot2 را نصب و بارگذاری کنیم تا نمودار سری زمانی خود را با استفاده از ggplot2 ترسیم کنیم:
نصب.بسته ها("ggplot2") # بسته GGPLOT2 را نصب کنیدکتابخانه("ggplot2") # بسته بندی GGPLOT2 را بارگیری کنیدسرانجام ، ما می توانیم دستورات GGPLOT و GEOM_LINE را برای ترسیم چندین سری زمانی به یک طرح اعمال کنیم:
GGPLOT(data_long ،# طرح سری سری GGPLOT2 را ترسیم کنیدایز(x =سال ، y= ارزش، سرهنگ=متغیر)) +ژئوم_ خط()

همانطور که در شکل 2 نشان داده شده است ، نحو قبلی گرافیکی را نشان می دهد که چندین متغیرهای سری زمانی را نشان می دهد.
ویدئو ، منابع بیشتر و خلاصه
در صورت نیاز به اطلاعات بیشتر در مورد کد برنامه نویسی R این مقاله ، ممکن است نگاهی به ویدیوی زیر کانال YouTube من بیندازید. در این ویدئو ، نحو برنامه نویسی R این مقاله را توضیح می دهم.
لطفاً کوکی های YouTube را برای پخش این ویدیو بپذیرید. با پذیرش به محتوای YouTube ، خدماتی که توسط شخص ثالث خارجی ارائه می شود ، دسترسی خواهید داشت.

اگر این اطلاعیه را بپذیرید ، انتخاب شما ذخیره می شود و صفحه تازه می شود.

محتوای YouTube را بپذیرید
علاوه بر این ، من می توانم خواندن آموزش های مربوط به این صفحه اصلی را توصیه کنم.
- چندین نمودار و خط را در همان طرح بکشید
- چندین متغیر را به عنوان خط به همان طرح GGPLOT2 بکشید
- طرح سری زمانی را با رویدادها با استفاده از بسته GGPLOT2 بکشید
- نقاشی توطئه در r
- همه نمونه های برنامه نویسی R
در این مقاله یاد گرفتید که چگونه یک نمودار را با چندین سریال با هم رویی و یک افسانه در زبان برنامه نویسی R چاپ کنید. در صورت داشتن سؤالات اضافی ، دریغ نکنید که در بخش نظرات زیر به من اطلاع دهید. علاوه بر این ، برای دریافت به روزرسانی در مورد آموزش های جدید ، در خبرنامه ایمیل من مشترک نیستید.
8 نظرترک جدید
وابسته به اوسوریو
Dear Sir Joaquim Greetings from Mozambique to you and your wonderful team. I am glad I have come across to your website and youtube with such great content and I have just subscribed. Time series with geom_line does not work for me. After some search on web I got the reason because I am working with grouped data. I wanted the line ploted and was not happy with the points (scatter). I come accross to your tutorial on summarise () with group_by() with the output on a new dataframe. Immediately I thought that could be the solution I was looking for and I was so excited to move on. I created a subset using the selection () , grouped and computed the new variable to be plotted across the seasons. Now when I bring the data into ggplot, I get so frustrated as ggplot cant access the data. The data frame is there, I cant print the str(), head(), names, but as I run the code for plotting I get a message that the variables were not found. “Error in ggplot.default(., ri_date, average_time, casual_member) : object ‘ri_date’ not found” This is my code —— bsts1 % group_by(ri_date,casual_member) %>% summarise( average_time= mean(ri_time)) # creating a new dataset for plotting head(bsts1) # view the top rows sapply(bsts1, class) # checking data type bsts1 %>٪ ggplot (ri_date ، متوسط_ زمان ، casual_member)+ geom_point (اندازه = 0. 5 ، alpha = 0. 5)+ theme_grey ()+ labs (عنوان = اشتراک دوچرخه سری زمانی - ژانویه - ژوئن) کجا گم می شوم یا اشتباه می کنم؟پیشاپیش از همه پشتیبانی شما با احترام Osorio متشکرم
سلام اوسوریو ، از سخنان خوب شما بسیار سپاسگزارم. آنها به ما انگیزه می دهند تا آموزش های مفیدی را برای افراد دوست داشتنی مانند شما ایجاد کنیم. داده های شما BSTS1 است ، آیا من درست است؟مقادیر X و Y شما چیست؟یا بگذارید بپرسم ، چه چیزی می خواهید ترسیم کنید؟از آنجا که ggplot () ، یک ورودی اضافی است. این باید یکی برای X و یکی فقط برای مقادیر y باشد. با احترام ، قوطی
وابسته به اوسوریو
سلام cansu ؛از پاسخ سریع شما متشکرمبله ، مجموعه داده من BSTS1 است. من میانگین را گروه بندی و محاسبه کرده ام. من یک متغیر طبقه بندی شده با دو گروه (سطح) = casual_member دارم. آرگومان های من برای GGPLOT عبارتند از: DATA = BSTS1 x = تاریخ (1 سال ، از ژانویه تا دسامبر) y = متغیر عددی (trip_duration) col = casual_member (سوم و اختیاری) ggplot (data = bsts1 ، aes (x = date ، date ، date ،y = trip_durantion ، col = casual_member) من می دانم ، آرگومان سوم اختیاری است ، اما در این مورد اجباری می شود زیرا من دو سری را در همان طرح مقایسه می کنم. توجه: متغیر عددی من ، Trip_duration ، روزانه ثبت می شود و موارد بیشتری داردبه همین دلیل من مجبور شدم میانگین (میانگین) را محاسبه کنم تا یک نقطه داده را برای هر روز بدست آورم. و حدس می زنم ، این گروه تبدیل به ریشه مشکل برای ترسیم یک خط در طول زمان می شود. در دسترس نیست که برای ترسیم استفاده شود امیدوارم اکنون مشخص شود. خروجی مورد انتظار من از ژانویه تا دسامبر دو خط (گاه به گاه و اعضا) خواهد بود و نشان می دهد تغییر Y = میانگین مدت زمان سفر روزانه. با تشکر از شما برای همه پشتیبانی شما Osorio
کسب درآمد از بیت کوین...
ما را در سایت کسب درآمد از بیت کوین دنبال می کنید
برچسب :
نویسنده : ماهور الوند
بازدید : <-PostHit->
تاريخ : چهارشنبه
15 شهريور
1402 ساعت: 3:21