کتابخانه ggplot2
یکی از مهمترین و پرکاربردترین ابزارها برای مصورسازی در R
است. با اینحال استفاده از قلمهای مختص زبان فارسی در این کتابخانه احتیاج به مقدار مختصری آمادهسازی دارد. شما پس از طی این مراحل قادر خواهید بود هر قلمی را که تمایل دارید در نمودارهای خود استفاده کنید. فرض کنید میخواهید در یک نمودار پراکندگی رابطه میزان جمعیت و مساحت ۴ شهر پرجمعیت دنیا را بررسی کنید.
نام شهر | جمعیت | مساحت |
---|---|---|
توکیو | 37435191 | 2194 |
دهلی | 29399141 | 1484 |
شانگهای | 26317104 | 6340 |
سائوپائولو | 21846507 | 1521 |
ابتدا دیتافریم مورد نیاز را ایجاد میکنیم:
df <- data.frame(city_name = c("توکیو","دهلی","شانگهای","سائوپائولو"),
population=c( 37435191,29399141,26317104,21846507),
area=c( 2194,1484,6340,1521))
سپس برای رسم نمودار پراکندگی به ترتیب زیر عمل میکنیم
ggplot(df,aes(area,population))+
geom_point()+
geom_text(aes(label= city_name), hjust = 0 , vjust =1)+
labs(title ="مقایسه مساحت شهرهای پرجمعیت دنیا" ,
subtitle ="نمونه برای استفاده قلم فارسی" ,
x= "مساحت به کیلومتر مربع",
y= "جمعیت")
همانطور که مشاهده میکنید قلم استفاده شده در نمودار برای استفاده در اسناد , گزارشها مناسب نیستند.
تغییر فونت در ویندوز
بسته به نوع سیستم عاملی که استفاده میکنید، ویندوز، اوبونتو یا دیگر سیستم عاملها، نحوه استفاده از فونتها کمی متفاوت است. برای تغییر فونت در نمودارها لازم است ابتدا فونتهای مورد نیاز به R
وارد شوند و سپس استفاده کنیم. در ویندوزهای ۶۴ بیتی برای شناساندن فونتهای نصب شده در پوشه fonts
سیستم عامل به R
از کتابخانهای به نام extrafont
استفاده میشود.
install.packages('extrafont')
library(extrafont)
پس از نصب و فراخوانی کتابخانه extrafont
لازم است با دستور font_import()
قلمهای نصب شده در سیستم عامل وارد R
شود. اما به دلایلی این دستور با خطا روبرو خواهد شد. دلیل این خطا بروز نشدن کتابخانهای واسط است که بسیاری از فونتهای قدیمیتر را پشتیبانی نمیکند. برای رفع این مشکل ابتدا باید نسخه قدیمیتر کتابخانه واسط Rttf2pt1
را نصب کرد.
# to install package
install.packages('remotes')
# install the older version package
remotes::install_version("Rttf2pt1", version = "1.3.8")
# importing windows fonts
font_import()
دستور font_import()
بسته به مشخصات فنی سیستم شما و تعداد فونتهای موجود در پوشه Fonts
ممکن است کمی زمانبر یاشد. خبر خوب آنکه اجرای این دستور تنها یکبار برای همیشه کافی است مگر آنکه ورژن R
را با حذف و نصب مجدد بروزرسانی کنید. پس از وارد کردن فونتها به ویندوز، با اجرای دستور زیر R
این امکان را خواهد داشت که از فونتهای موجود در سیستم استفاده کند.
loadfonts(device = "win")
fonts()
[1] "Agency FB" "Aldhabi" "Algerian"
[4] "Andalus" "Arial Black" "Arial"
[7] "Arial Narrow" "Arial Rounded MT Bold" "Bahnschrift"
[10] "Baskerville Old Face" "Bauhaus 93" "Bell MT"
[13] "Berlin Sans FB" "Berlin Sans FB Demi" "Bernard MT Condensed"
[16] "Blackadder ITC" "Bodoni MT" "Bodoni MT Black"
[19] "Bodoni MT Condensed" "Bodoni MT Poster Compressed" "Book Antiqua"
[22] "Bookman Old Style" "Bookshelf Symbol 7" "Bradley Hand ITC"
[25] "Britannic Bold" "Broadway" "Brush Script MT"
حل مشکل قلم فارسی
اگر پس از اجرای دستور fonts()
قلمهای بخصوصی را مشاهده نمیکنید، جای نگرانی نیست. این اشکال به دلیل نوع ساختار قلمهای فارسی است.
برای حل مشکل ابتدا نرم افزار متن باز و رایگان font forge
را از این لینک دانلود و نصب کنید. در اینجا قصد داریم دو قلم فارسی Vazir
و Sahel FD
را به R
معرفی کنیم تا در نمودارها استفاده کنیم.
نکته۱: برای دریافت و نصب رایگان قلمهای
Vazir
وSahel FD
به وبسایت این قلمها مراجعه کنید. فونت ساحل فونت وزیر
نکته۲: فونتSahel FD
در پوشهfarsi digits
قرار دارد. لازم است آن راunzip
و در محلی ذخیره کنید.
نکته۳: فونتSahel FD
دارای اعداد فارسی است و در بسیاری موارد کار را بسیار سادهتر میکند.
پیشنهاد میشود فونتهای فارسی مورد نیاز خود را در فولدری جدید ذخیره کنید و بعد به سراغ مراحل بعد بروید. مثلا در درایو C
پوشهای به نام rfont
ایجاد کنید. شما تا اینجا باید چیزی شبیه شکل زیر داشته باشید.
پس از دانلود و نصب font forge
آن را باز کنید:
سپس به پوشهای که فونتها را قراردادهاید بروید و فونت Sahel FD
را انتخاب کنید. آن را انتخاب کنید
از قسمت file
گزینه Generate Fonts
را انتخاب کنید.
اطمینان پیدا کنید گزینه True Type
را انتخاب کرده اید.
اگر نوع انتخاب شده پیشفرض چیز دیگری بود آن را به true type
تغییر دهید.
دکمه generate
را بفشارید!
اگر اخطاری در گوشه پایین سمت راست دریافت کردید آن را نادیده بگیرید. همچنین اگر اخطاری مبنی بر موجود بودن فونت گرفتید گزینه replace
را انتخاب کنید.
حال کافی است فونتهای ایجاد شده را به R
معرفی کنید. برای اینکه دوباره از دستور زمانبر font_import()
استفاده نکنید میتوانید با دستور زیر تنها فونتهای جدید را بخوانید:
ttf_import(paths = "c:/rfonts", recursive = TRUE)
اگر با خطایی مواجه نشدید کار با موفقیت تمام شده است.برای فونت وزیر
نیز همین مراحل را تکرار کنید. چون فونتهای جدیدی را وارد R
کردهاید یکبار دیگر دستور زیر را اجرا کنید:
loadfonts(device = "win")
رسم نمودار با فونت فارسی
اکنون میتوانید مثالی که در ابتدای این راهنما آورده شد را با کد زیر بازنویسی کنید.
ggplot(df,aes(area,population))+
geom_point()+
geom_text(aes(label= city_name),family="Vazir" ,hjust = 0 , vjust =1)+
labs(title ="مقایسه مساحت شهرهای پرجمعیت دنیا" ,
subtitle ="نمونه برای استفاده قلم فارسی" ,
x= "مساحت به کیلومتر مربع",
y= "جمعیت")+
theme(
text = element_text(family = "Sahel FD" , size = 20)
)
در انتها اگر میخواهید با کتابخانه قدرتمند ggplot2 آشنا شوید به اینجا مراجعه کنید.
تصویرگری با قلموی الگوریتم
در تصاویر هنر زایشگر معمولا جزئیات زیادی وجود دارد. اشکال و رنگها با ظرافت و هارمونی خیرهکنندهای در کنار یکدیگر قرار میگیرند و توجه بیننده را به خود جلب میکنند. اما آنچه در چنین آثاری بیننده را به مشاهده و کشفوشهود دعوت میکند این اجزا نیست، بلکه یک چیز دیگر است!
آیا میدانید این تصاویر با چه ابزارهایی ساخته شدهاند؟
یک پاسخ
خیلی عالی بود
کار من را راه انداخت
چند روز بود سر این گیر کرده بودم
خیلی خیلی ممون