با استفاده از بسته ggcharts R به راحتی با چند خط کد ساده تصاویر R را ایجاد کنید. به علاوه، نمودارها و نمودارهای به دست آمده، اشیاء ggplot قابل تنظیم هستند.
ggplot2 یک بسته R بسیار محبوب است، و دلیل خوبی دارد: قدرتمند، انعطاف پذیر و خوش فکر است. اما منحنی یادگیری دشواری دارد و افرادی هستند که برخی از عملکردهای آن را گاهی به سختی به خاطر می آورند. اگر میخواهید نمودار میلهای یا نمودار خطی ایجاد کنید که آماده گزارش باشد – سریع، آسان و با کد نسبتاً بصری –ggcharts ممکن است برای شما مناسب باشد.
این یک مثال سریع است. در زیر نمودار میله ای دمای بالا در بوستون در طول یک هفته کاری اخیر آمده است.
گراف ایجاد شده توسط ggplot2 در R.
اگر میخواهید دنبال کنید، از این دادهها میآید:
Day <- factor(c("Mon", "Tues", "Wed", "Thurs", "Fri"),
levels = c("Mon", "Tues", "Wed", "Thurs", "Fri"), ordered = TRUE)
HighTemp <- c(53, 55, 69, 34, 33)
bos_high_temps <- data.frame(Day, HighTemp)
این کد ggplot2 من است که نمودار را ساخته است:
library(ggplot2)
ggplot(bos_high_temps, aes(x=Day, y=HighTemp)) +
geom_col(color = "black", fill="#0072B2") +
theme_minimal() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line =
element_line(colour = "gray"),
plot.title = element_text(hjust = 0.5, size = 24),
plot.subtitle = element_text(hjust = 0.5, size = 20),
axis.text = element_text(size = 16)
)
اکنون این یک نمودار ggcharts با همان داده است:
گراف ایجاد شده توسط ggcharts در R.
و کد ggcharts برای آن نمودار:
library(ggcharts)
column_chart(bos_high_temps, x = Day, y = HighTemp)
این کد کمتری برای دریافت نتیجه مشابه است.
برای انصاف، من به همه سفارشیسازیهایی که به نسخه ggplot اضافه کردم نیازی به نداشتم. اما من اغلب از پیش فرض های ggplot خوشم نمی آید. به عنوان مثال:
ggplot(bos_high_temps, aes(x = Day, y = HighTemp)) + geom_col()
نمودار میلهای در ggplot با استفاده از پیشفرضها.
راههایی برای نوشتن کدهای زیادی برای سفارشیسازی ggplot وجود دارد. میتوانید پیشفرضهای جدید ggplot2 را تنظیم کنید، طرح زمینه خود را ایجاد کنید یا از قطعات کد RStudio استفاده کنید. اما اینها مستلزم این هستند که از قبل بدانید که چگونه سفارشی سازی را انجام دهید. اگر به طور مرتب دادهها را با بستههای مرتب تجسم میکنید، توصیه میکنم این مهارتها را یاد بگیرید—دانش ggplot بسیار مفید است! اما برای افرادی که تازه شروع به کار کردهاند، یا افرادی که اغلب طرحها را تولید نمیکنند، این ممکن است اولویت بالایی نداشته باشد.
ggcharts چیست؟
ggcharts یک بسته بسته بندی برای ggplot2 است. زیر مجموعه بسیار کوچکی از آنچه ggplot قادر به انجام آن است را انجام می دهد. با این حال، اشیاء R که با ggcharts ایجاد می کنید، اشیاء ggplot نیز هستند. و این بدان معناست که اگر میخواهید نتایج خود را بعداً تغییر دهید، میتوانید کد سفارشیسازی ggplot را اضافه کنید. این میتواند بهترین هر دو دنیا را به شما بدهد – به شرطی که یکی از دوجین یا چند نوع تجسم موجود در بسته را انجام دهید. ggcharts در حال حاضر دارای عملکردهایی برای ایجاد نمودارهای میله ای (افقی، عمودی یا واگرا)، نمودارهای آب نبات چوبی (از جمله واگرا)، نمودارهای خطی، دمبل ها و اهرام است. ggcharts حداقل هنوز گزینهای برای تجسمهایی مانند نمودارهای پراکنده یا نمودارهای جعبه نیست.
به نظر من برخی از ترفندهای اساسی در ggcharts نسبت به ggplot2 کمی ساده تر و شهودی تر است (اگرچه آنها بسیار محدودتر هستند). به عنوان مثال، نمودار نواری ggcharts پیشفرض فرض میکند که میخواهید نتایج را بر اساس مقدار y مرتب کنید (در مقابل نگه داشتن محور x در یک ترتیب خاص). خیلی اوقات دقیقاً همان چیزی است که شما می خواهید.
(برای انجام این کار با ggplot2، معمولاً باید مقادیر x خود را بر اساس مقدار y خود مرتب کنید، مانند aes(x=reorder(myxcolname, -myycolname)، y=myycolname))
. )
با نمودارهای gg، اگر نمیخواهید بر اساس مقدار y مرتب کنید، فقط از آرگومان sort = FALSE
استفاده کنید:
column_chart(bos_high_temps, x = Day, y = HighTemp,
sort = FALSE)
جستجوی گزینههای توابعی مانند column_chart()
با اجرای یک دستور راهنمای معمولی R مانند ?column_chart
آسان است.
column_chart(
data,
x,
y,
facet = NULL,
...,
bar_color = "auto",
highlight = NULL,
sort = NULL,
horizontal = FALSE,
top_n = NULL,
threshold = NULL,
limit = NULL
)
آگومان های ggcharts
داده
: مجموعه داده برای استفاده در نمودار میله ای.x
: ستون نویسه یا عاملی از دادهها.y
: ستون عددی دادهها نشاندهنده طول نوار. در صورت عدم وجود، طول میله متناسب با تعداد هر مقدار درx
خواهد بود.وجه
: ستون نویسه یا عاملی از دادهها که گروههای وجهی را تعریف میکند...
: آرگومانهای اضافی بهaes()
ارسال شد.bar_color
: نویسه. رنگ میله ها.هایلایت
: نویسه. یک یا چند مقدار ازx
که باید در نمودار برجسته شوند.مرتب سازی
: منطقی است. آیا داده ها باید قبل از رسم مرتب شوند؟- افقی: منطقی. آیا طرح باید به صورت افقی باشد؟
top_n
: عددی. اگر مقداری برایtop_n
ارائه شود، فقط رکوردهای برترtop_n
نمایش داده میشوند.آستانه
: عددی. اگر مقدار آستانه ارائه شود، فقط رکوردهای دارای آستانهy
> نمایش داده می شوند.سایر
: منطقی است. آیا تمام آستانه هایx
باy
< باید در گروهی به نام "دیگر" خلاصه شوند و در پایین نمودار نمایش داده شوند؟محدودیت
: منسوخ شده است. به جای آن ازtop_n
استفاده کنید.
این سه نقطه در آرگومانها به این معنی است که میتوانید به هر آرگومان ggplot aes()
اضافه کنید، نه فقط آنهایی که توسط ggcharts تعریف شدهاند.
نقاط داده را با نمودارهای gg مشخص کنید
آگومان ggcharts highlight
به شما امکان می دهد یک یا چند مقدار x را برای برجسته کردن بصری در نمودار خود انتخاب کنید.
برای برجسته کردن بالاترین دما در هر نمودار میلهای دمای روزانه—یعنی «هرچه مقدار x برای بالاترین مقدار y من باشد» به جای مقدار x رمزگذاری شده، باید آن مقدار x را محاسبه کنید، آن را در یک متغیر ذخیره کنید (در این مورد maxday
)، و سپس از نام متغیر با آرگومان برجسته استفاده کنید. توابع slice_max()
و pull()
dplyr برای یافتن اینکه کدام روز بیشترین مقدار را دارد بسیار مفید هستند:
library(dplyr)
maxday <- bos_high_temps %>%
slice_max(HighTemp) %>%
pull(Day)
column_chart(bos_high_temps, x = Day, y = HighTemp, sort = FALSE,
highlight = maxday
)
گراف با بالاترین مقدار برجسته شده، ایجاد شده با بسته ggcharts R.
اگر می خواهید رنگ هایلایت را تغییر دهید، می توانید از تابع highlight_spec()
برای تعیین مقادیر برجسته، رنگ هایلایت و رنگ غیر برجسته استفاده کنید، مانند: p>
spec <- highlight_spec(
what = maxday,
highlight_color = "darkred",
other_color = "lightgray"
)
column_chart(bos_high_temps, x = Day, y = HighTemp, sort = FALSE,
highlight = spec
)
سفارشی کردن رنگ هایلایت در نمودارهای gg.
اگر ggplot را می شناسید، می توانید سفارشی سازی بیشتری را به نمودار ggcharts خود اضافه کنید. مثال زیر یک عنوان و زیرنویس اضافه می کند، عنوان طرح و اندازه قلم زیرنویس را تعیین می کند و آنها را در مرکز قرار می دهد. من همچنین از تابع geom_text()
ggplot برای افزودن برچسب به نوارها استفاده کردم.
column_chart(bos_high_temps, x = Day, y = HighTemp, sort = FALSE) +
ggtitle("Boston Daily High Temperatures This Week",
subtitle = "National Weather Service data") +
theme(
plot.title = element_text(hjust = 0.5, size = 24),
plot.subtitle = element_text(hjust = 0.5, size = 20)
) +
geom_text(aes(label = paste0(HighTemp, '\u00B0')), vjust=1.5, colour="white",
position=position_dodge(.9), size=6)
این نمودار سفارشی سازی ggplot را به نمودار ggcharts اضافه می کند.
برای ایجاد وجه توسط یک متغیر، به عنوان مثال ایجاد یک نمودار میله ای برای هر سال در یک مجموعه داده، از آرگومان facet
استفاده کنید. نمودارهای آب نبات چوبی زیر از دادههای مجموعه دادههای درآمد زیستپزشکی داخلی ggcharts استفاده میکنند که شامل سه ستون است: شرکت، سال و درآمد. در کد زیر، من آن مجموعه داده را برای چهار سال اخیر فیلتر می کنم (در سال ۲۰۱۸ متوقف می شود) و سپس از ggcharts برای نمایان شدن و برجسته کردن استفاده می کنم.
biomedicalrevenue %>%
filter(year >= max(year) - 3) %>%
lollipop_chart(x = company, y = revenue, top_n = 10,
facet = year, highlight = c("Merck & Co.", "Pfizer"))
نماسازی ggcharts با استفاده از آرگومان جنبه ساده است.
برای سادهتر کردن کد بالقوه، میتوانید ggنمودار را با بسته ggeasy ترکیب کنید. ggeasy یک راه کاربر پسند برای تغییر چیزهایی مانند متن محور ارائه می دهد. بسته را بارگیری کنید و شروع به تایپ easy_
به علاوه چیزی که به دنبال آن هستید، مانند y_axis
کنید، و یک منوی کشویی از گزینههای عملکرد در RStudio خواهید دید.
برای مشاهده گزینههای بسته ggeasy شروع به تایپ easy_ کنید.
در زیر نحوه تغییر اندازه متن محور y یک طرح پایه آب نبات چوبی با افزودن کد ggplot2 آورده شده است.
biomedicalrevenue %>%
filter(year == max(year)) %>%
lollipop_chart(x = company, y = revenue, top_n = 10) +
theme(axis.text.y = element_text(size=16))
و در اینجا نحوه انجام آن با ggeasy آمده است:
biomedicalrevenue %>%
filter(year == max(year)) %>%
lollipop_chart(x = company, y = revenue, top_n = 10) +
easy_y_axis_labels_size(16)
در نهایت، اگر به گرافیکهای سادهتر ggplot2 علاقهمند هستید، یک بسته دیگر که باید از آن آگاه باشید esquisse است. این بسته R کشیدن و رها کردن ggplot را ارائه می دهد و کد R را تولید می کند که می توانید در اسکریپت های خود استفاده کنید. من این را در ویدیوی قبلی که میتوانید در زیر تماشا کنید، توضیح دادم.
برای نکات R بیشتر، به صفحه «بیشتر با R انجام دهید» در InfoWorld بروید یا .
پست های مرتبط
ggplot ساده تر با ggcharts در R
ggplot ساده تر با ggcharts در R
ggplot ساده تر با ggcharts در R