۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

نحوه ایجاد اسلایدهای پاورپوینت از R

نحوه تولید اسلایدهای پاورپوینت مستقیماً از یک سند R Markdown را بیاموزید. به علاوه، اسلایدهای تعاملی HTML را در R با بسته xaringan ایجاد کنید.

نحوه تولید اسلایدهای پاورپوینت مستقیماً از یک سند R Markdown را بیاموزید. به علاوه، اسلایدهای تعاملی HTML را در R با بسته xaringan ایجاد کنید.

راه‌های زیادی برای اشتراک‌گذاری نتایج تحلیل R شما وجود دارد: اسناد Word، برنامه‌های تعاملی، حتی در بدنه یک ایمیل.

اما گاهی اوقات، شما یک ارائه اسلاید می خواهید. ایجاد یک فایل پاورپوینت از کد R خود – کامل با نمودارها و نمودارها – به طور مستقیم از یک سند R Markdown آسان است.

یک پاورپوینت از R Markdown ایجاد کنید

برای ایجاد یک پاورپوینت از R، به سه چیز در سیستم خود نیاز دارید:

  • پاورپوینت یا اپن آفیس،
  • بسته rmarkdown، نسخه ۱.۹ یا جدیدتر، و
  • Pandoc نسخه ۲.۰.۵ یا جدیدتر.

Pandoc یک بسته R نیست. اصلا R نیست. این یک بخش جداگانه از نرم افزار منبع باز است که برای تبدیل فرمت فایل طراحی شده است.

RStudio با Pandoc عرضه می شود، بنابراین اگر از RStudio استفاده می کنید احتمالاً نسخه ای از آن را نصب کرده اید. می‌توانید تابع pandoc_version() بسته rmarkdown را اجرا کنید تا ببینید آیا آن را نصب کرده‌اید و اگر چنین است، چه نسخه‌ای را دارید. اگر pandoc شما خیلی قدیمی است، سعی کنید RStudio را به روز کنید (یا pandoc را مستقیماً از pandoc.org نصب کنید. ).

انتخاب منوی RStudio که پاورپوینت را به عنوان گزینه فرمت فایل نشان می دهد

هنگامی که یک فایل علامت گذاری جدید در RStudio ایجاد می کنید، گزینه ای برای ایجاد یک فایل پاورپوینت از R Markdown وجود دارد.

بعد، یک سند R Markdown ایجاد کنید. اگر این کار را از منوی RStudio با File > New File > R Markdown انجام دهید، چند انتخاب خواهید داشت. اگر روی گزینه دوم یعنی Presentation کلیک کنید، باید گزینه ای برای PowerPoint در زیر فرمت خروجی پیش فرض مشاهده کنید.

فایل R Markdown ایجاد شده توسط RStudio شامل نمونه هایی برای ترکیب متن و نتایج کد R است. اگر آن فایل را ذخیره کنید و سپس با کلیک بر روی دکمه بافتنی در RStudio آن را «بافتید»، یک ارائه پاورپوینت با همان اطلاعات دریافت خواهید کرد.

R از کجا می دانست که محتوا را به اسلایدهای جدید تقسیم کند؟ پیش‌فرض «بالاترین سطح عنوانی است که بلافاصله با عنوان دیگری دنبال نمی‌شود». در این مورد، این عنوان سطح دو است، یا همه عناوین با ## شروع می‌شوند.

با این حال، لازم نیست از آن قانون پیش‌فرض استفاده کنید. می توانید سطح سرفصل دیگری را برای تقسیم خودکار سند خود به اسلایدهای جدید مشخص کنید. این کار در هدر YAML سند  با گزینه slide_level انجام می‌شود، مانند

output: 
powerpoint_presentation:
slide_level: 3

اما اگر نمی‌خواهید با همه اینها سر و کار داشته باشید، می‌توانید محتوا را به صورت دستی با سه خط تیره به اسلایدهای جدید تقسیم کنید. مطمئن شوید که سه خط تیره روی یک خط کاملاً جدید قرار دارند.

یک فرهنگ لغت داده رایگان با R ایجاد کنید

ارائه آب و هوا

این یک فایل R Markdown است که حداقل برای من کمی جالب‌تر از سند پیش‌فرض است: یکی با داده‌های آب‌وهوا.

---
title: "National Weather Service Temperature Forecasts"
subtitle: "Boston, San Francisco, and Honolulu"
author: "Sharon Machlis"
date: "`r format(Sys.Date(), '%B %e, %Y')`"
output:
powerpoint_presentation:
reference_doc: CorporateStyle.pptx
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE, fig.width = 10, cache = TRUE)
pacman::p_load(ggplot2, jsonlite, httr, dplyr)
source("https://gist.githubusercontent.com/smach/897ee745d0cbcac6160952cc8f9da8fc/raw/6c14585a47d9a91ebb8dbc1d871281928a9da42a/wx_slideshow_functions.R")
```
## Boston
```{r}
bos_data <- get_forecast_data("Boston", "https://api.weather.gov/gridpoints/BOX/70,75/forecast")
get_forecast_graph(bos_data)
```
## San Francisco
```{r}
sf_data <- get_forecast_data("San Francisco", "https://api.weather.gov/gridpoints/MTR/88,126/forecast")
get_forecast_graph(sf_data)
```
## Honolulu
```{r}
hi_data <- get_forecast_data("Honolulu", "https://api.weather.gov/gridpoints/HFO/153,144/forecast")
get_forecast_graph(hi_data)
save(bos_data, sf_data, hi_data, file = "wxdata.Rdata")
```

به گزینه های R chunk که من تنظیم کرده ام توجه کنید. echo = FALSE به این معنی است که کد R من در اسلایدهای من نشان داده نمی شود. هشدار و پیام روی FALSE تنظیم می‌شوند، مطمئن می‌شوند که هیچ هشدار یا پیامی از کد من در اسلایدها ظاهر نمی‌شود. همچنین عرض شکل پیش‌فرض و cache = TRUE را تنظیم کرده‌ام. (من معمولاً نتایج را برای فایلی که می‌خواهم مرتباً به‌روزرسانی کنم، در حافظه پنهان ذخیره نمی‌کنم، اما این کار را برای صرفه‌جویی در وقت در ویدیوی همراه انجام دادم.)

داده های پیش بینی سرویس ملی آب و هوا را از طریق R

دریافت کنید

تکه کد راه‌اندازی R Markdown من نیز منبعی از فایل جداگانه در GitHub که شامل دو عملکرد برای واکشی داده های آب و هوا می باشد. در صورت علاقه این کد است:

get_forecast_data <- function(city, forecast_url) {
  req<-httr::GET(forecast_url)
  json <- httr::content(req, as = "text")
  weather_data <- jsonlite::fromJSON(json)
  forecast_df <- weather_data$properties$periods
  forecast_df <- forecast_df %>%
    dplyr::mutate(
      City = city,
      Temp = if_else(isDaytime == TRUE, "High", "Low"),
      Date = as.Date(substr(startTime,1,10)),
      Day = factor(name, levels = unique(name), ordered = TRUE)
    )
  Sys.sleep(2)
  return(forecast_df)
}

get_forecast_graph <- function(forecast_df) {
    ggplot(forecast_df, aes(x = Date, y = temperature, group = Temp, color = Temp)) +
    geom_line() +
    theme_minimal() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "gray")) + 
    ylab("") + xlab("")
}

اولین تابع با استفاده از نام شهر و نشانی اینترنتی پیش‌بینی شهر به عنوان آرگومان‌های تابع، یک چارچوب داده پیش‌بینی را از API خدمات آب‌وهوای ملی می‌کشد.

شما باید URL پیش‌بینی API را برای یک مکان بدانید تا داده‌های پیش‌بینی آن را دریافت کنید. اگر آن URL را نمی‌دانید، می‌توانید با استفاده از قالب

مایکروسافت از کتابخانه TypeChat برای ساخت رابط های زبان طبیعی رونمایی کرد

آن را از یک API خدمات ملی آب و هوا دریافت کنید.

https://api.weather.gov/points/{latitude},{longitude}

نتیجه اولیه API از درخواست httr GET یک لیست است. این تابع کدی را اضافه می‌کند که تنها بخشی از لیست را با داده‌هایی که می‌خواهم برمی‌گرداند که به‌عنوان یک قاب داده قالب‌بندی شده است.

عملکرد دوم قاب داده‌های پیش‌بینی را می‌گیرد و یک نمودار خطی ggplot برای دماهای بالا و پایین تولید می‌کند.

فونت پیش فرض پاورپوینت را تغییر دهید

اگر فونت یا اندازه فونت پیش‌فرض دیگری را برای اسلایدهای تولید شده با R خود می‌خواهید، می‌توانید آن‌ها را با سند پاورپوینت مرجع تنظیم کنید و اطلاعات مربوط به آن سند را در سربرگ R Markdown YAML اضافه کنید. من این کار را برای این اسلایدها انجام دادم، همانطور که در این قسمت از هدر سند YAML مشاهده می کنید:

output: 
powerpoint_presentation:
reference_doc: CorporateStyle.pptx

فایل مرجع من، CorporateStyle.pptx، یک فایل پاورپوینت معمولی است و یک الگوی پاورپوینت نیست. برای تبدیل آن به فایل مرجع، به نمای اسلاید اصلی فایل رفتم و چند سبک تنظیم کردم. می‌توانید نمای اسلاید اصلی هر فایل پاورپوینت را در منوی پاورپوینت با View > Slide Master ویرایش کنید.

هر زمان که نسخه به روز شده آن پاورپوینت پیش بینی را می خواهم، فقط باید سند را دوباره ببافم. حتی می‌توانم آن را طوری تنظیم کنم که به‌طور خودکار با استفاده از زمان‌بندی ویندوز اجرا شود یا در Mac راه‌اندازی شود.

اسلایدهای HTML را از R

ایجاد کنید

ممکن است موارد زیادی وجود داشته باشد که شما به طور خاص به یک فایل پاورپوینت نیاز داشته باشید یا بخواهید. با این حال، یکی از چیزهایی که اسلایدهای پاورپوینت فاقد آن هستند، تعامل است. برای مثال، نمی‌توانید روی یک نمودار بچرخید و داده‌های زیربنایی را ببینید.

اگر این اسلایدهای HTMLبودند، می‌توانید.

چند راه برای تولید اسلایدهای HTML از R وجود دارد. یکی از محبوب‌ترین آنها با هدف xaringan R package. xaringan در بالای کتابخانه جاوا اسکریپت remark.js ساخته شده است. کمی منحنی یادگیری برای انجام بیشتر از اصول اولیه وجود دارد، اما ظاهر و احساس بسیار قابل تنظیم است.

xaringan برای پوشش تمام کارهایی که می توانید با آن انجام دهید، به سری خاص خود نیاز دارد. اما حتی اصول اولیه نیز می تواند برای موارد استفاده زیادی کار کند. در زیر نمونه ای از سند R Markdown با کمی سفارشی سازی وجود دارد.

---
title: "National Weather Service Temperature Forecasts"
subtitle: "Boston, San Francisco, and Honolulu"
author: "Sharon Machlis"
date: "`r format(Sys.Date(), '%B %e, %Y')`"
output:
xaringan::moon_reader:
lib_dir: libs
nature:
highlightStyle: github
highlightLines: true
countIncrementalSlides: false
---
class: center
layout: true
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE, fig.width = 10)
pacman::p_load(echarts4r, dplyr)
load("wxdata.Rdata")
get_interactive_graph <- function(wxdata) {
mygraph <- wxdata %>%
group_by(Temp) %>%
mutate(Date = format(Date, "%b %e")) %>%
e_charts(Date) %>%
e_line(temperature) %>%
e_tooltip(trigger = "axis")
return(mygraph)
}
```
## Boston
```{r}
get_interactive_graph(bos_data)
```

---
## San Francisco
```{r}
get_interactive_graph(sf_data)
```

---
## Honolulu
```{r}
get_interactive_graph(hi_data)
```

---
# [bit.ly/domorewithR](https://bit.ly/domorewithR)

سه خط تیره یک اسلاید جدید ایجاد می کند. اولین اسلاید بعد از اسلاید عنوان نمایش داده نمی شود. برای سایر اسلایدها پیش فرض ها را تنظیم می کند. layout: true به این معنی است که “این یک اسلاید است که پیش فرض های طرح بندی را تنظیم می کند.” class: center همه چیز – متن سرصفحه، گرافیک – را در مرکز قرار می دهد، مگر اینکه من به طور خاص آن را به شکل دیگری کدنویسی کنم.

ساخت اقدامات سفارشی برای Power Automate برای ویندوز

گزینه خروجی xaringan::moonreader هر بار که فایل را ذخیره می‌کنید، اسلایدها را بازسازی می‌کند، بنابراین نیازی به کلیک بر روی دکمه بافتنی نیست.

بدنه فایل شامل یک تابع نموداری است که با استفاده از یکی از بسته‌های dataviz مورد علاقه‌ام، echarts4r، برای تجسم داده‌های آب‌وهوای خود نوشتم. می‌توانید ماوس را روی خطوط روی نمودارهای این اسلایدها نگه دارید تا داده‌های زیربنایی را ببینید، همچنین روی موارد افسانه کلیک کنید تا خطوط را خاموش و روشن کنید.

نمودار خطی دماهای بالا و پایین پیش‌بینی‌شده بوستون، از جمله یک پنجره بازشو با آن داده‌ها.

یک ارائه اسلاید HTML به شما امکان می دهد با تجسم ها تعامل داشته باشید، مانند نگه داشتن ماوس روی یک نمودار برای دیدن داده های اساسی.

می توانید با xaringan کارهای بیشتری انجام دهید، از افزودن فایل CSS خود گرفته تا ایجاد تم خود و متحرک سازی اسلایدها. در اینجا چند منبع برای کسب اطلاعات بیشتر آورده شده است:

و برای نکات R بیشتر، به صفحه بیشتر با R انجام دهید بروید.