<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>نمودار در R &#8211; مدرسه پردازش و تحلیل داده دقیقه</title>
	<atom:link href="https://d-learn.ir/tag/%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1-%D8%AF%D8%B1-r/feed/" rel="self" type="application/rss+xml" />
	<link>https://d-learn.ir</link>
	<description>یادگیری گام به گام علوم داده و تحلیل داده</description>
	<lastBuildDate>Tue, 16 Sep 2025 14:58:28 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://d-learn.ir/wp-content/uploads/2021/10/cropped-Picture1-e1633785514326-150x150.png</url>
	<title>نمودار در R &#8211; مدرسه پردازش و تحلیل داده دقیقه</title>
	<link>https://d-learn.ir</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>به‌روزرسانی بسته ggplot2 +تغییرات ۴.۰</title>
		<link>https://d-learn.ir/ggplot2-4-update/</link>
					<comments>https://d-learn.ir/ggplot2-4-update/#respond</comments>
		
		<dc:creator><![CDATA[علیرضا چمن‌زار]]></dc:creator>
		<pubDate>Tue, 16 Sep 2025 13:10:30 +0000</pubDate>
				<category><![CDATA[جعبه‌ابزار]]></category>
		<category><![CDATA[ggplot example]]></category>
		<category><![CDATA[ggplot histogram]]></category>
		<category><![CDATA[ggplot style]]></category>
		<category><![CDATA[ggplot2]]></category>
		<category><![CDATA[ggplot2 package]]></category>
		<category><![CDATA[lq]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[Tidyverse]]></category>
		<category><![CDATA[به روزرسانی]]></category>
		<category><![CDATA[مصورسازی]]></category>
		<category><![CDATA[نمودار در R]]></category>
		<category><![CDATA[ویژه]]></category>
		<guid isPermaLink="false">https://d-learn.ir/?p=89279</guid>

					<description><![CDATA[<p>وبلاگ TidyVerse 1 خبر از انتشار نسخه جدید بسته ggplot2 داد و تغییرات زیاد این به‌روزرسانی، دلیلی شده تا شماره اصلی این بسته را نیز به روز کنند و به ورژن 4.0 رسید.  این بسته که بر اساس کتاب The Grammar of Graphics طراحی شده است به کاربران اجازه می‌دهد تا با تعریف اجزای اصلی [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://d-learn.ir/ggplot2-4-update/">به‌روزرسانی بسته ggplot2 +تغییرات ۴.۰</a> appeared first on <a rel="nofollow" href="https://d-learn.ir">مدرسه پردازش و تحلیل داده دقیقه</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>



<p class="sm-p">وبلاگ TidyVerse <sup data-fn="be200d24-f1c7-449a-8b5a-dee54b75bfe5" class="fn"><a id="be200d24-f1c7-449a-8b5a-dee54b75bfe5-link" href="#be200d24-f1c7-449a-8b5a-dee54b75bfe5">1</a></sup> خبر از انتشار نسخه جدید بسته <a href="https://d-learn.ir/courses/ggplot2-intro/" data-type="link" data-id="https://d-learn.ir/courses/ggplot2-intro/">ggplot2</a> داد و تغییرات زیاد این به‌روزرسانی، دلیلی شده تا شماره اصلی این بسته را نیز به روز کنند و به ورژن 4.0 رسید.  این بسته که بر اساس کتاب The Grammar of Graphics طراحی شده است به کاربران اجازه می‌دهد تا با تعریف اجزای اصلی نمودار شامل داده‌ها، متغیرها، سیستم مختصات و عناصر گرافیکی، نمودارهای پیچیده را به صورت لایه‌ای و ماژولار بسازند. ggplot2 امکان ایجاد طیف گسترده‌ای از نمودارها &#8211; از نمودارهای پراکندگی ساده تا نقشه‌های چندلایه و نمودارهای آماری پیشرفته &#8211; را با حداقل کد و حداکثر انعطاف‌پذیری فراهم می‌کند. این بسته به دلیل قابلیت‌های سفارشی‌سازی بالا، پشتیبانی از تم‌های یکپارچه و سازگاری با اکوسیستم tidyverse، به ابزاری استاندارد در تحلیل داده‌ها و مصورسازی علمی تبدیل شده است.</p>



<p>نسخه جدید را می‌توان از CRAN با دستور زیر نصب کرد:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label=" کپی" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>install.packages("ggplot2")</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #6CB6FF">install.packages</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&quot;ggplot2&quot;</span><span style="color: #ADBAC7">)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="https://d-learn.ir/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<p class="sm-p">این نسخه شامل تغییرات قابل توجهی است که دلیلی برای تغییر شماره اصلی نسخه شده است. مهم‌ترین تغییرات شامل بازنویسی سیستم شیءگرا از S3 به S7، اضافه شدن ویژگی‌های جدید، بهبودهای کاربردی و رفع اشکالات است. همچنین هجدهمین سالگرد انتشار این بسته گرامی داشته می‌شود. در این متن، برجسته‌ترین ویژگی‌های جدید این نسخه معرفی می‌شوند. لیست کامل تغییرات در <a href="https://ggplot2.tidyverse.org/news/index.html" rel="nofollow noopener" target="_blank">یادداشت‌های انتشار</a> قابل مشاهده است.</p>



<h2 class="wp-block-heading">انتقال به S7</h2>



<p class="sm-p">در <code>ggplot2</code>، افزایش شماره اصلی نسخه نشان‌دهنده تغییرات اساسی در هسته بسته است. در این نسخه، بسیاری از اشیاء S3 با اشیاء S7 جایگزین شده‌اند. S7 مانند S3 و S4 یک سیستم شیءگرا مبتنی بر کلاس، توابع عمومی و متدهاست که سعی می‌کند بین انعطاف‌پذیری S3 و ساختارمند بودن S4 تعادل ایجاد کند.</p>



<p class="sm-p">این تغییر برای کاربران معمولی که فقط از <code>ggplot2</code> برای ساخت نمودار استفاده می‌کنند، چندان محسوس نخواهد بود. شاید تنها تفاوت قابل توجه، اعتبارسنجی سختگیرانه‌تر انواع داده‌ها باشد. برای مثال، ورودی‌های نامعتبر اکنون بلافاصله رد می‌شوند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>element_text(hjust = "foo")
#> Error: &lt;ggplot2::element_text> object properties are invalid:
#> - @hjust must be &lt;NULL>, &lt;integer>, or &lt;double>, not &lt;character></textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">element_text</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">hjust</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;foo&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #768390">#&gt; Error: &lt;ggplot2::element_text&gt; object properties are invalid:</span></span>
<span class="line"><span style="color: #768390">#&gt; - @hjust must be &lt;NULL&gt;, &lt;integer&gt;, or &lt;double&gt;, not &lt;character&gt;</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="https://d-learn.ir/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<p class="sm-p">اما اگر از قابلیت‌های داخلی <code>ggplot2</code> به روش‌های غیرمعمول استفاده می‌کنید، ممکن است نیاز به تنظیمات داشته باشید. برای توسعه‌دهندگان افزونه‌ها، مزیت اصلی S7 امکان استفاده از double dispatch است که به خصوص برای تابع <a href="https://ggplot2.tidyverse.org/reference/update_ggplot.html" target="_blank" rel="noreferrer noopener nofollow"><code>update_ggplot()</code></a> (جانشین <a href="https://ggplot2.tidyverse.org/reference/update_ggplot.html" target="_blank" rel="noreferrer noopener nofollow"><code>ggplot_add()</code></a>) مهم است. این تابع کنترل بیشتری بر رفتار عملگر <code>+</code> هنگام افزودن اشیاء به نمودار فراهم می‌کند.</p>



<p class="sm-p">برای حفظ سازگاری با بسته‌های موجود، برخی ویژگی‌های قدیمی به طور موقت حفظ شده‌اند (مانند دسترسی به داده‌ها با <code><em>ggplot()$data</em></code>). این ویژگی‌ها به تدریج حذف خواهند شد و راهنمای مهاجرت از S3 به S7 برای بسته‌های مرتبط در حال آماده‌سازی است.</p>



<p></p>



<h2 class="wp-block-heading">بهبودهای طراحی</h2>



<p class="sm-p">تم‌ها در <a href="https://d-learn.ir/courses/ggplot2-intro/" data-type="link" data-id="https://d-learn.ir/courses/ggplot2-intro/"><code>ggplot2</code> </a>مسئول کنترل ظاهر نمودارها هستند. در این نسخه، پیش‌فرض‌های ظاهری لایه‌ها (مانند شکل نقاط و پالت رنگ) نیز به تم‌ها منتقل شده‌اند. این ایده که پیش‌فرض‌های لایه‌ها باید بخشی از تم باشند، مدتی است مطرح بوده و اکنون پیاده‌سازی شده است.</p>



<h3 class="wp-block-heading">جوهر و کاغذ</h3>



<p>پیش‌فرض‌های جدید لایه‌ها با مفاهیم <code>ink</code> (پیش‌زمینه) و <code>paper</code> (پس‌زمینه) کار می‌کنند که با ویژگی‌های <code>colour</code> و <code>fill</code> متفاوت هستند. برای مثال &nbsp;یک نمودار جعبه‌ای بدون&nbsp;<code>colour</code>&nbsp;قابل خواندن نیست، اما بدون&nbsp;<code>fill</code>&nbsp;کاملاً قابل تفسیر است. در مورد نمودار جعبه‌ای، وضوح&nbsp;<code>ink</code> را <code>colour</code>&nbsp;باید دید و در حالی که&nbsp;<code>paper</code>&nbsp;در <code>fill</code>&nbsp;قرار می‌گیرد. در نمودارهای میله‌ای یا هیستوگرام‌ها، اصل&nbsp;<a href="https://clauswilke.com/dataviz/proportional-ink.html" rel="nofollow noopener" target="_blank">تناسب جوهر</a>&nbsp;تصریح می‌کند که زیبایی‌شناسی&nbsp;<code>fill</code>&nbsp;، پیش‌زمینه در نظر گرفته می‌شود و بنابراین به عنوان&nbsp;<code>ink</code>&nbsp;در نظر گرفته می‌شود.</p>



<p class="sm-p">این سه گزینه به تمام تم‌های داخلی اضافه شده‌اند و هم بر پیش‌فرض‌های لایه‌ها و هم بر سایر اجزای تم تأثیر می‌گذارند. برای سفارشی‌سازی تم، می‌توان از <code>theme(geom)</code> و تابع جدید <a href="https://ggplot2.tidyverse.org/reference/element.html" rel="nofollow noopener" target="_blank"><code>element_geom()</code></a> استفاده کرد. برای دسترسی به این مقادیر در نگاشت‌ها، تابع <a href="https://ggplot2.tidyverse.org/reference/aes_eval.html" rel="nofollow noopener" target="_blank"><code>from_theme()</code></a> در دسترس است.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(mpg, aes(displ, hwy)) +
  geom_point() +
  geom_smooth(method = "lm", formula = y ~ x) +
  theme_gray(paper = "cornsilk", ink = "navy", accent = "tomato")</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(displ, hwy)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_smooth</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">method</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;lm&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">formula</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> y </span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> x) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">theme_gray</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">paper</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;cornsilk&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">ink</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;navy&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">accent</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;tomato&quot;</span><span style="color: #ADBAC7">)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-1024x632.png" alt="image | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89343" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 1" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">اگر در حال سفارشی‌سازی یک قالب هستید، می‌توانید از آرگومان&nbsp;<code>theme(geom)</code>&nbsp;برای تنظیم مجموعه‌ای از پیش‌فرض‌ها استفاده کنید. تابع جدید&nbsp;<a href="https://ggplot2.tidyverse.org/reference/element.html" rel="nofollow noopener" target="_blank"><code>element_geom()</code></a>&nbsp;می‌تواند برای تنظیم این ویژگی‌ها استفاده شود. علاوه بر این، اگر می‌خواهید یک لایه، ویژگی را از این عنصر تم بخواند، می‌توانید از تابع&nbsp;<a href="https://ggplot2.tidyverse.org/reference/aes_eval.html" rel="nofollow noopener" target="_blank"><code>from_theme()</code></a>&nbsp;در نگاشت برای دسترسی به این متغیرها استفاده کنید.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(mpg, aes(class, displ)) +
  geom_boxplot(aes(colour = from_theme(accent))) +
  theme(
    geom = element_geom(accent = "tomato", paper = "cornsilk")
  )</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(class, displ)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_boxplot</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">from_theme</span><span style="color: #ADBAC7">(accent))) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">theme</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">geom</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_geom</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">accent</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;tomato&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">paper</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;cornsilk&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-1-1024x632.png" alt="image 1 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89347" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 2" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-1-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-1-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-1-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-1.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">دومین تفاوت مفهومی در&nbsp;<a href="https://ggplot2.tidyverse.org/reference/element.html" rel="nofollow noopener" target="_blank"><code>element_geom()</code></a>&nbsp;مربوط به استفاده از خطوط است. در یک نقش، مانند یک نمودار خطی، خط مستقیماً داده‌ها را نشان می‌دهد. در نقش دوم، یک خط به عنوان جداکننده بین دو واحد عمل می‌کند. به عنوان مثال، می‌توانید کشورها را به صورت چندضلعی نمایش دهید و خطی که رئوس را به هم متصل می‌کند، مکان‌هایی را که درون یک کشور هستند از مکان‌هایی که خارج از آن کشور هستند جدا می‌کند. این دو نقش در یک جفت&nbsp;<code>linewidth</code>&nbsp;و&nbsp;<code>linetype</code>&nbsp;و یک جفت&nbsp;<code>borderwidth</code>&nbsp;و&nbsp;<code>bordertype</code>&nbsp;نمایش داده می‌شوند.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(faithful, aes(waiting)) +
  geom_histogram(bins = 30, colour = "black") +
  geom_freqpoly(bins = 30) +
  theme(geom = element_geom(
    bordertype = "dashed",
    borderwidth = 0.2,
    linewidth = 2,
    linetype = "solid"
  ))</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(faithful, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(waiting)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_histogram</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">bins</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">30</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;black&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_freqpoly</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">bins</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">30</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">theme</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">geom</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_geom</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">bordertype</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;dashed&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">borderwidth</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">0.2</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">linewidth</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">2</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">linetype</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;solid&quot;</span></span>
<span class="line"><span style="color: #ADBAC7">  ))</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-2-1024x632.png" alt="image 2 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89348" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 3" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-2-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-2-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-2-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-2.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">مقیاس‌ها و پالت‌ها</h3>



<p class="sm-p">پالت‌های پیش‌فرض اکنون در تم‌ها تعریف می‌شوند. تنظیمات مربوطه با الگوی <code>palette.{aesthetic}.{type}</code> (که <code>type</code> می‌تواند <code>discrete</code> یا <code>continuous</code> باشد) مشخص می‌شوند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(mpg, aes(displ, hwy, shape = drv, colour = cty)) +
  geom_point() +
  theme(
    palette.colour.continuous = c("chartreuse", "forestgreen"),
    palette.shape.discrete = c("triangle", "triangle open", "triangle down open")
  )</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(displ, hwy, </span><span style="color: #F69D50">shape</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> drv, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> cty)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">theme</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">palette.colour.continuous</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&quot;chartreuse&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;forestgreen&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">palette.shape.discrete</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&quot;triangle&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;triangle open&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;triangle down open&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="https://d-learn.ir/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-17-1024x632.png" alt="image 17 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89370" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 4" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-17-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-17-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-17-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-17.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">نحوه‌ کار این است که تمام مقیاس‌های پیش‌فرض مقدار <code>palette = NULL</code> دارند که هنگام ساخت نمودار با مقادیر تعریف شده در تم جایگزین می‌شود.</p>



<h3 class="wp-block-heading">میانبرها</h3>



<p>برای ساده‌سازی تعریف تم‌ها، توابع کمکی جدیدی معرفی شده‌اند:</p>



<ul class="wp-block-list sm-ltr">
<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_axis()</code></a>
<ul class="wp-block-list">
<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_axis_x()</code></a>
<ul class="wp-block-list">
<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_axis_bottom()</code></a></li>



<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_axis_top()</code></a></li>
</ul>
</li>



<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_axis_y()</code></a>
<ul class="wp-block-list">
<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_axis_left()</code></a></li>



<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_axis_right()</code></a></li>
</ul>
</li>
</ul>
</li>



<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_legend()</code></a></li>



<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_panel()</code></a></li>



<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_plot()</code></a></li>



<li><a href="https://ggplot2.tidyverse.org/reference/subtheme.html" target="_blank" rel="noreferrer noopener nofollow"><code>theme_sub_strip()</code></a></li>
</ul>



<p class="sm-p">این توابع با افزودن پیشوند مناسب، آرگومان‌ها را به <code>theme()</code> منتقل می‌کنند و کد را خواناتر می‌کنند. برای مثال، استفاده از&nbsp;<code>theme_sub_legend(justification)</code>&nbsp; به&nbsp;<code>theme(legend.justification)</code>&nbsp;ترجمه می‌شود:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># روش قدیمی: طولانی و نامرتب
theme(
  panel.widths = unit(5, "cm"),
  axis.ticks.x = element_line(colour = "red"),
  axis.ticks.length.x = unit(5, "mm"),
  panel.background = element_rect(fill = NA),
  panel.spacing.x = unit(5, "mm")
)

# روش جدید: مختصر و منظم
theme_sub_axis_x(
  ticks = element_line(colour = "red"),
  ticks.length = unit(5, "mm")
) +
theme_sub_panel(
  widths = unit(5, "cm"),
  spacing.x = unit(5, "mm"),
  background = element_rect(fill = NA)
)</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #768390"># روش قدیمی: طولانی و نامرتب</span></span>
<span class="line"><span style="color: #F69D50">theme</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">panel.widths</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">axis.ticks.x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_line</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;red&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">axis.ticks.length.x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;mm&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">panel.background</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_rect</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">NA</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">panel.spacing.x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;mm&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #768390"># روش جدید: مختصر و منظم</span></span>
<span class="line"><span style="color: #F69D50">theme_sub_axis_x</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">ticks</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_line</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;red&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">ticks.length</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;mm&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #F69D50">theme_sub_panel</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">widths</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">spacing.x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;mm&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">background</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_rect</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">NA</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="https://d-learn.ir/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<p>برای تعریف حاشیه‌ها، دو تابع جدید اضافه شده است:</p>



<ul class="wp-block-list">
<li><a href="https://ggplot2.tidyverse.org/reference/element.html" rel="nofollow noopener" target="_blank"><code>margin_auto()</code></a>: تعریف حاشیه‌ها به سبک CSS
<ul class="wp-block-list">
<li class="sm-p"><code>margin_auto(1)</code>:&nbsp;هر چهار ضلع را به طور همزمان تنظیم می‌کند. این تابع به&nbsp;<code>margin(t = 1, r = 1, b = 1, l = 1)</code>&nbsp;بسط می‌یابد.</li>



<li><code>margin_auto(1, 2)</code>: &nbsp;اضلاع افقی و عمودی را تنظیم می‌کند. این تابع به&nbsp;<code>margin(t = 1, r = 2, b = 1, l = 2)</code>&nbsp;بسط می‌یابد.</li>
</ul>
</li>



<li><a href="https://ggplot2.tidyverse.org/reference/element.html" rel="nofollow noopener" target="_blank"><code>margin_part()</code></a>: تعریف حاشیه‌های انتخابی با حفظ مقادیر پیش‌فرض</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>merge_element(
  margin_part(r = 20), # child
  margin_auto(10) # parent
)
#> &#91;1&#93; 10points 20points 10points 10points</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">merge_element</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">margin_part</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">r</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">20</span><span style="color: #ADBAC7">), </span><span style="color: #768390"># child</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">margin_auto</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">10</span><span style="color: #ADBAC7">) </span><span style="color: #768390"># parent</span></span>
<span class="line"><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #768390">#&gt; &#91;1&#93; 10points 20points 10points 10points</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<h3 class="wp-block-heading">تنظیمات جدید</h3>



<p class="sm-p">عناصر ریشه جدید <code>spacing</code> و <code>margins</code> برای هماهنگ‌سازی فاصله‌ها در تم‌ها معرفی شده‌اند. عناصر دیگر از این مقادیر به ارث می‌برند. برای تنظیم نسبی مقادیر، می‌توان از <a href="https://ggplot2.tidyverse.org/reference/element.html" rel="nofollow noopener" target="_blank"><code>rel()</code></a> استفاده کرد. برای مثال، مقدار پیش‌فرض&nbsp;<code>axis.ticks.length</code>&nbsp;اکنون&nbsp;<code>rel(0.5)</code>&nbsp;است که باعث می‌شود تیک‌های محور y در نمودار زیر 0.5 سانتی‌متر باشند. اگر&nbsp;<code>axis.ticks.length.x</code>&nbsp;را روی&nbsp;<code>rel(2)</code>&nbsp;تنظیم کنیم، مقداری که از&nbsp;<code>axis.ticks.length</code>&nbsp;می‌آید را دو برابر می‌کند، نه مقدار&nbsp;<code>spacing</code>&nbsp;را.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>p &lt;- ggplot(penguins, aes(bill_dep, bill_len, colour = species)) +
  geom_point(na.rm = TRUE)

p + theme(
  spacing = unit(1, "cm"), 
  margins = margin_auto(1, unit = "cm"),
  axis.ticks.length.x = rel(2)
)
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">p </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(penguins, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_dep, bill_len, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> species)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">theme</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">spacing</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">), </span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">margins</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">margin_auto</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">axis.ticks.length.x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">rel</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">2</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">)</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-3-1024x632.png" alt="image 3 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89352" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 5" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-3-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-3-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-3-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-3.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">همچنین برای کنترل اندازه نمودارها، آرگومان‌های <code>panel.widths</code> و <code>panel.heights</code> اضافه شده‌اند که با <code>ggsave(width, height)</code> متفاوت هستند (این آرگومان‌ها فقط اندازه پنل‌ها را کنترل می‌کنند، نه کل نمودار). دو روش برای استفاده از این آرگومان‌ها وجود دارد:</p>



<ul class="wp-block-list">
<li class="sm-p">یک بردار از واحدها بدهید: هر واحد به طور جداگانه روی یک پنل اعمال می‌شود و بردار برای تناسب با تعداد پنل‌ها اجرامی‌شود.</li>



<li>یک واحد یکسان بدهید: که مساحت کل پنل (شامل فواصل پنل‌ها و محورهای داخلی) را به آن اندازه تنظیم می‌کند.</li>
</ul>



<p>طبیعتاً، اگر فقط یک پنل داشته باشید، این رویکردها یکسان هستند. اگر چندین پنل دارید و می‌خواهید اندازه پنل‌های جداگانه را یکسان کنید (برخلاف اندازه کل)، می‌توانید از آن استفاده کنید و از یک بردار واحد با طول ۲ استفاده کنید.</p>



<p class="sm-p">در نمودارهای زیر، می‌توانید متوجه شوید که پنل‌ها با وجود اینکه واحدها به مقدار یکسانی (۹ سانتی‌متر) جمع می‌شوند، عرض متفاوتی دارند. دلیل این امر این است که رویکرد «تک واحدی» شامل فواصل پنل‌ها نیز می‌شود، اما رویکرد دیگر شامل این موضوع نمی‌شود.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>p1 &lt;- p + facet_grid(~ island) +
  labs(title = "Separate units (per panel)") +
  # Using the new shortcut for panels
  theme_sub_panel(
    widths = unit(c(2, 3, 4), "cm"),
    heights = unit(3, "cm")
  )

p2 &lt;- p + facet_grid(~ island) +
  labs(title = "Single unit (all panels)") +
  theme_sub_panel(
    widths = unit(9, "cm"),
    heights = unit(3, "cm")
  )

p1 / p2</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">p1 </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> p </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">facet_grid</span><span style="color: #ADBAC7">(</span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> island) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">title</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Separate units (per panel)&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># Using the new shortcut for panels</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">theme_sub_panel</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">widths</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">2</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">3</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">4</span><span style="color: #ADBAC7">), </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">heights</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">3</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p2 </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> p </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">facet_grid</span><span style="color: #ADBAC7">(</span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> island) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">title</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Single unit (all panels)&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">theme_sub_panel</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">widths</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">9</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">heights</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">3</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;cm&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p1 </span><span style="color: #F47067">/</span><span style="color: #ADBAC7"> p2</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-4-1024x632.png" alt="image 4 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89353" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 6" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-4-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-4-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-4-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-4.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">برچسب‌گذاری</h2>



<p class="sm-p">روش‌های جدیدی برای بازیابی برچسب متغیرها اضافه شده است. <code>ggplot2</code> اکنون از ویژگی <code>label</code> (که در بسته‌هایی مانند <code>gt</code>، labelsd&nbsp;و <code>Hmisc</code> استفاده می‌شود) به عنوان برچسب پیش‌فرض متغیر استفاده می‌کند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># فراخوانی دیتاست پیش‌فرض پنگوئن‌ها
df &lt;- penguins

# تنظیم دستی لیبل‌ها
attr(df$species, "label") &lt;- "Penguin Species"
attr(df$bill_dep, "label") &lt;- "Bill depth (mm)"
attr(df$bill_len, "label") &lt;- "Bill length (mm)"
attr(df$body_mass, "label") &lt;- "Body mass (g)"

ggplot(df, aes(bill_dep, bill_len, colour = sqrt(body_mass))) +
  geom_point(na.rm = TRUE)
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #768390"># فراخوانی دیتاست پیش‌فرض پنگوئن‌ها</span></span>
<span class="line"><span style="color: #ADBAC7">df </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> penguins</span></span>
<span class="line"></span>
<span class="line"><span style="color: #768390"># تنظیم دستی لیبل‌ها</span></span>
<span class="line"><span style="color: #6CB6FF">attr</span><span style="color: #ADBAC7">(df</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">species, </span><span style="color: #96D0FF">&quot;label&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Penguin Species&quot;</span></span>
<span class="line"><span style="color: #6CB6FF">attr</span><span style="color: #ADBAC7">(df</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">bill_dep, </span><span style="color: #96D0FF">&quot;label&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Bill depth (mm)&quot;</span></span>
<span class="line"><span style="color: #6CB6FF">attr</span><span style="color: #ADBAC7">(df</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">bill_len, </span><span style="color: #96D0FF">&quot;label&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Bill length (mm)&quot;</span></span>
<span class="line"><span style="color: #6CB6FF">attr</span><span style="color: #ADBAC7">(df</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">body_mass, </span><span style="color: #96D0FF">&quot;label&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Body mass (g)&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(df, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_dep, bill_len, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">sqrt</span><span style="color: #ADBAC7">(body_mass))) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">)</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-18-1024x632.png" alt="image 18 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89371" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 7" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-18-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-18-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-18-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-18.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">برای کار با دیکشنری‌ داده، آرگومان <code>labs(dictionary)</code> اضافه شده است. این آرگومان یک بردار نام‌دار از برچسب‌ها را می‌گیرد که می‌توان به راحتی آن را از یک دیکشنری با استفاده از <a href="https://rdrr.io/r/stats/setNames.html" target="_blank" rel="noreferrer noopener nofollow">setNames()</a> یا <a href="https://dplyr.tidyverse.org/reference/pull.html" target="_blank" rel="noreferrer noopener nofollow">dplyr::pull()</a> تولید کرد.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>dict &lt;- tibble::tribble(
  ~var,    ~label,
  "species",  "Penguin Species",
  "bill_dep", "Bill depth (mm)",
  "bill_len", "Bill length (mm)",
  "body_mass", "Body mass (g)"
)

ggplot(penguins, aes(bill_dep, bill_len, colour = body_mass)) +
  geom_point(na.rm = TRUE) +
  # یا
  # labs(dictionary = dplyr::pull(dict, label, name = var))
  labs(dictionary = setNames(dict$label, dict$var))
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">dict </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">tibble</span><span style="color: #F47067">::</span><span style="color: #F69D50">tribble</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F47067">~</span><span style="color: #ADBAC7">var,    </span><span style="color: #F47067">~</span><span style="color: #ADBAC7">label,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;species&quot;</span><span style="color: #ADBAC7">,  </span><span style="color: #96D0FF">&quot;Penguin Species&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;bill_dep&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;Bill depth (mm)&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;bill_len&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;Bill length (mm)&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;body_mass&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;Body mass (g)&quot;</span></span>
<span class="line"><span style="color: #ADBAC7">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(penguins, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_dep, bill_len, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> body_mass)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># یا</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># labs(dictionary = dplyr::pull(dict, label, name = var))</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">dictionary</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">setNames</span><span style="color: #ADBAC7">(dict</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">label, dict</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">var))</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.tidyverse.org/blog/2025/09/ggplot2-4-0-0/figs/unnamed-chunk-12-1.png" alt="Image 3" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 8"></figure>



<p class="sm-p">یکی از مزایای رویکردهای ویژگی‌های برچسب یا دیکشنری داده این است که به متغیرهای شما متصل است و  نه در aesthtics (که در ggplot2 با aes نوشته می‌شود). این بدان معناست که می‌توانید به راحتی  خود را برای یک نمودار متفاوت بازآرایی کنید، بدون اینکه مجبور باشید برچسب‌ها را صحیح با دقت مجدداً هدایت کنید.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>last_plot() +
  aes(body_mass, bill_len, colour = species)</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">last_plot</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(body_mass, bill_len, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> species)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-19-1024x632.png" alt="image 19 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89372" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 9" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-19-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-19-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-19-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-19.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>سلسله مراتب اولویت برچسب‌ها به ترتیب زیر است:</p>



<ol class="wp-block-list">
<li>عبارت  در <a href="https://ggplot2.tidyverse.org/reference/aes.html" rel="nofollow noopener" target="_blank"><code>AES()</code></a></li>



<li>ورودی در <code>labs(dictionary)</code></li>



<li>ویژگی <code>label</code> در ستون</li>



<li>ورودی در <code>labs(&lt;aesthetic&gt; = &lt;label&gt;)</code></li>



<li>آرگومان <code>scale_*(name)</code></li>



<li>آرگومان <code>guide_*(title)</code></li>
</ol>



<p>این سلسله مراتب را می‌توانید در نمودار زیر ببینید. تابع در راهنمای محور ورودی را از&nbsp;<a href="https://ggplot2.tidyverse.org/reference/labs.html" rel="nofollow noopener" target="_blank"><code>Labs()</code></a>&nbsp;استفاده کنید.</p>



<p class="sm-p"></p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(penguins, aes(bill_dep, bill_len, colour = species)) +
  geom_point(na.rm = TRUE) +
  scale_colour_discrete(name = toupper) +
  guides(x = guide_axis(title = tools::toTitleCase)) +
  labs(
    y = \(x) paste0(x, " variable"),
    x = "the label for the x variable"
  )
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(penguins, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_dep, bill_len, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> species)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">scale_colour_discrete</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">name</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> toupper) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">guides</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">guide_axis</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">title</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">tools</span><span style="color: #F47067">::</span><span style="color: #ADBAC7">toTitleCase)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #DCBDFB">y</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">\</span><span style="color: #ADBAC7">(x) </span><span style="color: #6CB6FF">paste0</span><span style="color: #ADBAC7">(x, </span><span style="color: #96D0FF">&quot; variable&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;the label for the x variable&quot;</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-5-1024x632.png" alt="image 5 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89354" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 10" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-5-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-5-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-5-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-5.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">برای مقیاس‌های گسسته، اگر <code>breaks</code> نامگذاری شده باشند، برچسب‌ها به طور پیش‌فرض از نام‌های <code>breaks</code> استفاده می‌کنند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(penguins, aes(bill_dep, bill_len, colour = species)) +
  geom_point(na.rm = TRUE) +
  scale_colour_discrete(
    breaks = c(
      "Pygoscelis adeliae"     = "Adelie",
      "Pygoscelis papua"       = "Gentoo",
      "Pygoscelis antarcticus" = "Chinstrap"
    )
  )</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(penguins, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_dep, bill_len, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> species)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">scale_colour_discrete</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">breaks</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #96D0FF">&quot;Pygoscelis adeliae&quot;</span><span style="color: #ADBAC7">     = </span><span style="color: #96D0FF">&quot;Adelie&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #96D0FF">&quot;Pygoscelis papua&quot;</span><span style="color: #ADBAC7">       = </span><span style="color: #96D0FF">&quot;Gentoo&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #96D0FF">&quot;Pygoscelis antarcticus&quot;</span><span style="color: #ADBAC7"> = </span><span style="color: #96D0FF">&quot;Chinstrap&quot;</span></span>
<span class="line"><span style="color: #ADBAC7">    )</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-6-1024x632.png" alt="image 6 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89355" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 11" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-6-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-6-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-6-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-6.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">مقیاس‌های گسسته</h2>



<p class="sm-p">در این نسخه، انعطاف‌پذیری مقیاس‌های موقعیت گسسته افزایش یافته است. پیش از این، مقادیر گسسته همیشه به یک دنباله عدد صحیح نگاشت می‌شدند که از 1 شروع می‌شد و به تعداد سطوح می‌رسید. اکنون می‌توان از آرگومان <code>palette</code> برای تعریف نگاشت‌های سفارشی استفاده کرد:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(ToothGrowth, aes(interaction(dose, supp, sep = "\n"), len)) +
  geom_boxplot() +
  scale_x_discrete(
    palette = scales::pal_manual(c(1:3, 5:7))
  )</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(ToothGrowth, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">interaction</span><span style="color: #ADBAC7">(dose, supp, </span><span style="color: #F69D50">sep</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;</span><span style="color: #F47067">\n</span><span style="color: #96D0FF">&quot;</span><span style="color: #ADBAC7">), len)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_boxplot</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">scale_x_discrete</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">palette</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">scales</span><span style="color: #F47067">::</span><span style="color: #F69D50">pal_manual</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">1</span><span style="color: #F47067">:</span><span style="color: #6CB6FF">3</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">5</span><span style="color: #F47067">:</span><span style="color: #6CB6FF">7</span><span style="color: #ADBAC7">))</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<p class="sm-p"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-20-1024x632.png" alt="image 20 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89373" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 12" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-20-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-20-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-20-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-20.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">محدودیت‌های پیوسته مقیاس‌های گسسته اکنون با <code>continuous.limits</code> قابل کنترل هستند. همچنین قابلیت تعریف <code>minor_breaks</code> برای مقیاس‌های گسسته و پشتیبانی از محورهای ثانویه با <a href="https://ggplot2.tidyverse.org/reference/sec_axis.html" rel="nofollow noopener" target="_blank"><code>dup_axis()</code></a> اضافه شده است.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>p1 &lt;- ggplot(mpg, aes(class)) +
  geom_bar() +
  facet_wrap(~ drv, ncol = 1, scales = "free_x")

p2 &lt;- p1 + scale_x_discrete(continuous.limits = c(1, 5))

(p1 + labs(title = "Free limits")) | 
(p2 + labs(title = "Fixed limits"))</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">p1 </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(class)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_bar</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">facet_wrap</span><span style="color: #ADBAC7">(</span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> drv, </span><span style="color: #F69D50">ncol</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">scales</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;free_x&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p2 </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> p1 </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">scale_x_discrete</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">continuous.limits</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">))</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">(p1 </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">title</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Free limits&quot;</span><span style="color: #ADBAC7">)) </span><span style="color: #F47067">|</span><span style="color: #ADBAC7"> </span></span>
<span class="line"><span style="color: #ADBAC7">(p2 </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">title</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Fixed limits&quot;</span><span style="color: #ADBAC7">))</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0">R</a></span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-7-1024x632.png" alt="image 7 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89356" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 13" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-7-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-7-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-7-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-7.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">مقیاس های موقعیت گسسته اکنون به محورهای ثانویه نیز دسترسی دارند. برخلاف مقیاس های پیوسته، مقیاس های گسسته از تبدیلات پشتیبانی نمی کنند. بنابراین به جای&nbsp;<a href="https://ggplot2.tidyverse.org/reference/sec_axis.html" rel="nofollow noopener" target="_blank"><code>sec_axis()</code></a>، توصیه می شود استفاده کنید&nbsp;<a href="https://ggplot2.tidyverse.org/reference/sec_axis.html" rel="nofollow noopener" target="_blank"><code>dup_axis()</code></a>. برای اجازه دادن به موقعیت های دلخواه برای&nbsp;<code>dup_axis(breaks)،</code>&nbsp;این می تواند مقادیر عددی یا یکی از سطوح گسسته را بگیرد. آنها واقعا برای نمایش دو مجموعه داده تراز شده با مقیاس های مختلف مفید نیستند، اما می توانند به عنوان حاشیه نویسی عمل کنند. به عنوان مثال، آنها می توانند برخی از آمارهای خلاصه در مورد گروه ها را نمایش دهند.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(mpg, aes(class, cty)) +
  geom_boxplot() +
  scale_x_discrete(
    sec.axis = dup_axis(
      name = "Counts",
      # You can use numeric input for breaks
      breaks = seq_len(length(unique(mpg$class))),
      # Watch out for the order of `table()` and your levels!
      labels = paste0("n = ", table(mpg$class))
    )
  )</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(class, cty)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_boxplot</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">scale_x_discrete</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">sec.axis</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">dup_axis</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #F69D50">name</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Counts&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #768390"># You can use numeric input for breaks</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #F69D50">breaks</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">seq_len</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">length</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">unique</span><span style="color: #ADBAC7">(mpg</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">class))),</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #768390"># Watch out for the order of `table()` and your levels!</span></span>
<span class="line"><span style="color: #ADBAC7">      </span><span style="color: #F69D50">labels</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">paste0</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&quot;n = &quot;</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">table</span><span style="color: #ADBAC7">(mpg</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">class))</span></span>
<span class="line"><span style="color: #ADBAC7">    )</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-21-1024x632.png" alt="image 21 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89374" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 14" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-21-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-21-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-21-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-21.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">موقعیت (position)</h2>



<p class="sm-p">لایه ها از سه جزء تشکیل شده اند: آمار، ژئوم و موقعیت. آمار و ژئوم، aes خاص خود را دارند؛ مانند &nbsp;<code>weight</code>&nbsp;و <code>linewidth</code> ، تنظیمات موقعیت این گونه نبودند. تنظیمات موقعیت اکنون می‌توانند پارامترهای اختصاصی داشته باشند. برای مثال در <a href="https://ggplot2.tidyverse.org/reference/position_nudge.html" rel="nofollow noopener" target="_blank"><code>position_nudge()</code></a>، پارامترهای <code>nudge_x</code> و <code>nudge_y</code> به عنوان پارامتر در دسترس هستند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>coal &lt;- tibble::tribble(
  ~continent,  ~pct_1985, ~pct_2024,
  "Africa",        53.87, 24.68,
  "Asia",          32.60, 51.19,
  "Europe",        32.84, 12.91,
  "North America", 48.93, 13.79,
  "South America",  2.91,  3.31,
  "Oceania",       58.75, 39.26
) |>
  dplyr::mutate(pp_difference = pct_2024 - pct_1985)

ggplot(coal, aes(pp_difference, continent)) +
  geom_col() +
  geom_text(
    aes(nudge_x = sign(pp_difference) * 3, 
        label = pp_difference)
  ) +
  labs(x = "Change in electricity generated by coal (pp)")</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">coal </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">tibble</span><span style="color: #F47067">::</span><span style="color: #F69D50">tribble</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F47067">~</span><span style="color: #ADBAC7">continent,  </span><span style="color: #F47067">~</span><span style="color: #ADBAC7">pct_1985, </span><span style="color: #F47067">~</span><span style="color: #ADBAC7">pct_2024,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;Africa&quot;</span><span style="color: #ADBAC7">,        </span><span style="color: #6CB6FF">53.87</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">24.68</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;Asia&quot;</span><span style="color: #ADBAC7">,          </span><span style="color: #6CB6FF">32.60</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">51.19</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;Europe&quot;</span><span style="color: #ADBAC7">,        </span><span style="color: #6CB6FF">32.84</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">12.91</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;North America&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">48.93</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">13.79</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;South America&quot;</span><span style="color: #ADBAC7">,  </span><span style="color: #6CB6FF">2.91</span><span style="color: #ADBAC7">,  </span><span style="color: #6CB6FF">3.31</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #96D0FF">&quot;Oceania&quot;</span><span style="color: #ADBAC7">,       </span><span style="color: #6CB6FF">58.75</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">39.26</span></span>
<span class="line"><span style="color: #ADBAC7">) </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #6CB6FF">dplyr</span><span style="color: #F47067">::</span><span style="color: #F69D50">mutate</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">pp_difference</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> pct_2024 </span><span style="color: #F47067">-</span><span style="color: #ADBAC7"> pct_1985)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(coal, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(pp_difference, continent)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_col</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_text</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">nudge_x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">sign</span><span style="color: #ADBAC7">(pp_difference) </span><span style="color: #F47067">*</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">3</span><span style="color: #ADBAC7">, </span></span>
<span class="line"><span style="color: #ADBAC7">        </span><span style="color: #F69D50">label</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> pp_difference)</span></span>
<span class="line"><span style="color: #ADBAC7">  ) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Change in electricity generated by coal (pp)&quot;</span><span style="color: #ADBAC7">)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0">R</a></span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-22-1024x632.png" alt="image 22 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89375" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 15" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-22-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-22-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-22-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-22.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ویژگی دیگر <a href="https://ggplot2.tidyverse.org/reference/position_dodge.html" rel="nofollow noopener" target="_blank"><code>position_dodge()</code></a> است که می‌توان برای مثال در کد زیر، ورزش‌هایی که آماری در هر جنس را ندارند، در نمودار در جای درستی قرار نگرفته‌اند. چرا که ggplot2 درکی از گروه‌های دیگر ندارد. جنسیت‌های مختلف یکی بالای خط و یکی زیر خط قرار دارد.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>sports &lt;- c("water polo", "swimming", "gymnastics", "field", "netball")
p &lt;- ggridges::Aus_athletes |>
  dplyr::filter(sport %in% sports) |>
  ggplot(aes(height, sport, fill = sex)) +
  geom_boxplot(position = position_dodge(preserve = "single"))

p</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">sports </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&quot;water polo&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;swimming&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;gymnastics&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;field&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;netball&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">p </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">ggridges</span><span style="color: #F47067">::</span><span style="color: #ADBAC7">Aus_athletes </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #6CB6FF">dplyr</span><span style="color: #F47067">::</span><span style="color: #6CB6FF">filter</span><span style="color: #ADBAC7">(sport </span><span style="color: #F47067">%in%</span><span style="color: #ADBAC7"> sports) </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(height, sport, </span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> sex)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_boxplot</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">position</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">position_dodge</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">preserve</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;single&quot;</span><span style="color: #ADBAC7">))</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-9-1024x632.png" alt="image 9 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89358" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 16" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-9-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-9-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-9-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-9.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>برای حل این مساله الا می‌توانید در <a href="https://ggplot2.tidyverse.org/reference/position_dodge.html" rel="nofollow noopener" target="_blank"><code>position_dodge()</code></a>.  از order استفاده کرد.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>p + aes(order = sex)</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">p </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">order</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> sex)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.tidyverse.org/blog/2025/09/ggplot2-4-0-0/figs/unnamed-chunk-22-1.png" alt="Image 6" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 17"></figure>



<h2 class="wp-block-heading">Facets</h2>



<h3 class="wp-block-heading">جهات</h3>



<p class="sm-p">این&nbsp;<a href="https://ggplot2.tidyverse.org/reference/facet_wrap.html" rel="nofollow noopener" target="_blank"><code>تابع facet_wrap()</code></a>&nbsp;دارای دو آرگومان است که طرح بندی را کنترل می کند:&nbsp;<code>dir</code>&nbsp;که می تواند&nbsp;<code>"h"</code>&nbsp;یا&nbsp;<code>"v"</code>&nbsp;باشد و&nbsp;<code>as.table</code>&nbsp;با می تواند&nbsp;<code>TRUE</code>&nbsp;یا&nbsp;<code>FALSE</code>&nbsp;باشد. با هم در مجموع ۴ گزینه طرح بندی را ارائه می‌دادند. در به روزرسانی جدید،  آرگومان <code>dir</code> در <a href="https://ggplot2.tidyverse.org/reference/facet_wrap.html" rel="nofollow noopener" target="_blank"><code>facet_wrap()</code></a> اکنون 8 حالت را با کدهای دو حرفی پشتیبانی می‌کند. گزینه های جدید همه کدهای دو حرفی هستند که از ترکیب&nbsp;<code>t</code>&nbsp;(بالا)،&nbsp;<code>r</code>&nbsp;(راست)،&nbsp;<code>b</code>&nbsp;(پایین) و&nbsp;<code>l</code>&nbsp;(چپ) استفاده می کنند. این ترکیب به شما می گوید که اولین سطح جنبه کجا خواهد بود. هر دو&nbsp;<code>br</code>&nbsp;و&nbsp;<code>rb</code>&nbsp;در پایین سمت راست با اولین جنبه شروع می شوند. سپس ترتیب جهت پر شدن را به شما می گوید، جایی که شروع با&nbsp;<code>b</code>&nbsp;از پایین به بالا پر می شود و با&nbsp;<code>شروع با r</code>&nbsp;از راست به چپ پر می شود.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>p &lt;- ggplot(mpg, aes(displ, hwy)) +
  geom_point()

p1 &lt;- p + 
  facet_wrap(~ vctrs::vec_group_id(class), dir = "br") +
  labs(title = "dir = 'br'")

p2 &lt;- p +
  facet_wrap(~ vctrs::vec_group_id(class), dir = "rb") +
  labs(title = "dir = 'rb'")

p1 | p2</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">p </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(displ, hwy)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p1 </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> p </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">facet_wrap</span><span style="color: #ADBAC7">(</span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">vctrs</span><span style="color: #F47067">::</span><span style="color: #F69D50">vec_group_id</span><span style="color: #ADBAC7">(class), </span><span style="color: #F69D50">dir</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;br&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">title</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;dir = &#39;br&#39;&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p2 </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> p </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">facet_wrap</span><span style="color: #ADBAC7">(</span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">vctrs</span><span style="color: #F47067">::</span><span style="color: #F69D50">vec_group_id</span><span style="color: #ADBAC7">(class), </span><span style="color: #F69D50">dir</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;rb&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">labs</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">title</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;dir = &#39;rb&#39;&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ADBAC7">p1 </span><span style="color: #F47067">|</span><span style="color: #ADBAC7"> p2</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-10-1024x632.png" alt="image 10 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89359" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 18" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-10-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-10-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-10-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-10.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>۸ انتخاب پیش رو، به این ترتیب می‌باشد:</p>



<ul class="wp-block-list">
<li><code>"lt"</code>: شروع از بالا-چپ، پر کردن از چپ به راست</li>



<li><code>"tl"</code>: شروع از بالا-چپ، پر کردن از بالا به پایین</li>



<li><code>"lb"</code>: شروع از پایین-چپ، پر کردن از چپ به راست</li>



<li><code>"bl"</code>: شروع از پایین-چپ، پر کردن از پایین به بالا</li>



<li><code>"rt"</code>: شروع از بالا-راست، پر کردن از راست به چپ</li>



<li><code>"tr"</code>: شروع از بالا-راست، پر کردن از بالا به پایین</li>



<li><code>"rb"</code>: شروع از پایین-راست، پر کردن از راست به چپ</li>



<li><code>"br"</code>: شروع از پایین-راست، پر کردن از پایین به بالا</li>
</ul>



<h3 class="wp-block-heading">فضای آزاد</h3>



<p class="sm-p">آرگومان facet_grid(space)  می تواند اطمینان حاصل کند که پنل‌ها متناسب با محدوده داده خود، فضا در اختیار بگیرند و اندازه پنل‌ها را متناسب با محدوده داده تنظیم می‌کند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(penguins, aes(bill_dep, bill_len, colour = species)) +
  geom_point(na.rm = TRUE) +
  facet_wrap(~ island, scales = "free_x", space = "free_x")</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(penguins, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_dep, bill_len, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> species)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">facet_wrap</span><span style="color: #ADBAC7">(</span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> island, </span><span style="color: #F69D50">scales</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;free_x&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">space</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;free_x&quot;</span><span style="color: #ADBAC7">)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.tidyverse.org/blog/2025/09/ggplot2-4-0-0/figs/unnamed-chunk-24-1.png" alt="Image 7" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 19"></figure>



<h3 class="wp-block-heading">چیدمان لایه</h3>



<p class="sm-p">آرگومان <code>layer(layout)</code> برای کنترل نحوه توزیع داده‌ها در پنل‌ها اضافه شده است. موارد زیر برای <a href="https://ggplot2.tidyverse.org/reference/facet_wrap.html" rel="nofollow noopener" target="_blank"><code>facet_wrap()</code></a>&nbsp;و&nbsp;<a href="https://ggplot2.tidyverse.org/reference/facet_grid.html" rel="nofollow noopener" target="_blank"><code>facet_grid()</code></a> </p>



<ul class="wp-block-list">
<li>layout = NULL: پیش‌فرض. استفاده از متغیرهای faceting </li>



<li>layout = &#8220;fixed&#8221; تکرار داده‌ها در تمام پنل‌ها</li>



<li>layout = &lt;integer&gt;: اختصاص داده‌ها به پنل خاص</li>



<li>layout = &#8220;fixed_cols&#8221;: تکرار داده‌ها در ستون</li>



<li>layout = &#8220;fixed_rows&#8221;: تکرار داده‌ها در ردیف</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(penguins, aes(bill_dep, bill_len)) +
  # Repeat within every row
  geom_point(na.rm = TRUE, colour = "grey", layout = "fixed_rows") +
  # Use facetting variables (default)
  geom_point(na.rm = TRUE, layout = NULL) +
  # Pick particular panel
  annotate(
    "text", x = I(0.5), y = I(0.5),
    label = "Panel 6", layout = 6
  ) +
  facet_grid(island ~ species)</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(penguins, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_dep, bill_len)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># Repeat within every row</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;grey&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">layout</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;fixed_rows&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># Use facetting variables (default)</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">layout</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">NULL</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># Pick particular panel</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">annotate</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #96D0FF">&quot;text&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">I</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">), </span><span style="color: #F69D50">y</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">I</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">label</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;Panel 6&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">layout</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">6</span></span>
<span class="line"><span style="color: #ADBAC7">  ) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">facet_grid</span><span style="color: #ADBAC7">(island </span><span style="color: #F47067">~</span><span style="color: #ADBAC7"> species)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.tidyverse.org/blog/2025/09/ggplot2-4-0-0/figs/unnamed-chunk-25-1.png" alt="Image 8" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 20"></figure>



<h2 class="wp-block-heading">به‌روزرسانی‌های ظاهری</h2>



<h3 class="wp-block-heading">Boxplot</h3>



<p class="sm-p">امکان استایل‌دهی جداگانه اجزای boxplot (خط میانه، جعبه، خطوط (Wisker)و Staple) اضافه شده است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(mpg, aes(class, hwy, colour = class)) +
  geom_boxplot(
    whisker.linetype = "dashed",
    box.colour = "black",
    median.linewidth = 2,
    staplewidth = 0.5, # show staple
    staple.colour = "grey50"
  ) +
  guides(colour = "none")
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(class, hwy, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> class)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_boxplot</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">whisker.linetype</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;dashed&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">box.colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;black&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">median.linewidth</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">2</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">staplewidth</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">, </span><span style="color: #768390"># show staple</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">staple.colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;grey50&quot;</span></span>
<span class="line"><span style="color: #ADBAC7">  ) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">guides</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;none&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.tidyverse.org/blog/2025/09/ggplot2-4-0-0/figs/unnamed-chunk-26-1.png" alt="Image 9" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 21"></figure>



<p class="sm-p">آرگومان <code>fatten</code> منسوخ شده و جایگزین‌های <code>median.linewidth</code> و <code>middle.linewidth</code> معرفی شده‌اند.</p>



<h3 class="wp-block-heading">ویولن و چارک‌ها</h3>



<p class="sm-p">محاسبه چارک‌ها اکنون بر اساس داده‌های اصلی انجام می‌شود (نه داده‌های چگالی). به طور پیش فرض، چارک‌ها 25، 50 و 75 هستند و همیشه محاسبه می‌شوند. برای نمایش چارک‌ها، از آرگومان‌های <code>quantile.colour</code>، <code>quantile.linetype</code> و <code>quantile.linewidth</code> استفاده می‌شود. به طور پیش‌فرض <code>quantile.linetype = 0</code> (بدون خط) است.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(mpg, aes(class, hwy, fill = class)) +
  geom_violin(
    quantiles = c(0.1, 0.9),
    quantile.linetype = 1
  ) +
  guides(fill = "none")</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mpg, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(class, hwy, </span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> class)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_violin</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">quantiles</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.1</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.9</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">quantile.linetype</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">1</span></span>
<span class="line"><span style="color: #ADBAC7">  ) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">guides</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;none&quot;</span><span style="color: #ADBAC7">)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-11-1024x632.png" alt="image 11 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89360" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 22" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-11-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-11-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-11-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-11.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">برچسب‌ها</h3>



<p class="sm-p"><a href="https://ggplot2.tidyverse.org/reference/geom_text.html" rel="nofollow noopener" target="_blank"><code>geom_label()</code></a> اکنون زیبایی‌شناسی‌های <code>linetype</code> و <code>linewidth</code> و آرگومان‌های <code>border.colour</code> و <code>text.colour</code> را پشتیبانی می‌کند.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(mtcars) +
  aes(
    wt, mpg,
    label = rownames(mtcars),
    colour = factor(cyl),
    linetype = factor(vs),
    linewidth = factor(am)
  ) +
  geom_label(text.colour = "black") +
  scale_linewidth_manual(values = c(0.3, 0.6))</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(mtcars) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    wt, mpg,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">label</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">rownames</span><span style="color: #ADBAC7">(mtcars),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">factor</span><span style="color: #ADBAC7">(cyl),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">linetype</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">factor</span><span style="color: #ADBAC7">(vs),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">linewidth</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">factor</span><span style="color: #ADBAC7">(am)</span></span>
<span class="line"><span style="color: #ADBAC7">  ) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_label</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">text.colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;black&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">scale_linewidth_manual</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">values</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.3</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.6</span><span style="color: #ADBAC7">))</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-12-1024x632.png" alt="image 12 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89361" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 23" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-12-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-12-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-12-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-12.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">مساحت و ریبون‌ها</h3>



<p><a href="https://ggplot2.tidyverse.org/reference/geom_ribbon.html" rel="nofollow noopener" target="_blank"><code>geom_area()</code></a> و <a href="https://ggplot2.tidyverse.org/reference/geom_ribbon.html" rel="nofollow noopener" target="_blank"><code>geom_ribbon()</code></a> اکنون از <code>fill</code> متغیر درون گروه پشتیبانی می‌کنند (نیاز به R 4.1.0+ دارد).</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>ggplot(economics, aes(date, unemploy)) +
  geom_area(aes(fill = uempmed))</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(economics, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(date, unemploy)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_area</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> uempmed))</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-13-1024x632.png" alt="image 13 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89362" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 24" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-13-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-13-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-13-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-13.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">آماره‌های جدید</h2>



<h3 class="wp-block-heading">manual</h3>



<p class="sm-p">سیاری از پسوندهای ggplot بر اساس آمار هستند که به شما امکان می دهد محاسبات دلخواه را روی داده ها قبل از تحویل توابع ترسیم انجام دهید.  هم ساخته شده تا <a href="https://ggplot2.tidyverse.org/reference/stat_manual.html" rel="nofollow noopener" target="_blank"><code>stat_manual()</code></a> امکان تعریف آماره سفارشی بدون نیاز به ساخت کلاس رسمی را فراهم می‌کند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>make_centroids &lt;- function(df) {
  transform(
    df,
    xend = mean(x, na.rm = TRUE),
    yend = mean(y, na.rm = TRUE)
  )
}

make_hull &lt;- function(df) {
  df &lt;- df&#91;complete.cases(df), , drop = FALSE&#93;
  hull &lt;- chull(df$x, df$y)
  df&#91;hull, , drop = FALSE&#93;
}

ggplot(penguins, aes(bill_len, bill_dep, colour = species)) + 
  geom_point(na.rm = TRUE) + 
  # As a stat, provide a geom
  stat_manual(
    geom = "segment", # function creates new xend/yend for segment
    fun = make_centroids,
    linewidth = 0.2,
    na.rm = TRUE
  ) +
  # As a geom, provide the stat
  geom_polygon(
    stat = "manual",
    fun = make_hull,
    fill = NA,
    linetype = "dotted"
  )</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #DCBDFB">make_centroids</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">function</span><span style="color: #ADBAC7">(df) {</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #6CB6FF">transform</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    df,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">xend</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">mean</span><span style="color: #ADBAC7">(x, </span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">yend</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">mean</span><span style="color: #ADBAC7">(y, </span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"><span style="color: #ADBAC7">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCBDFB">make_hull</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">function</span><span style="color: #ADBAC7">(df) {</span></span>
<span class="line"><span style="color: #ADBAC7">  df </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> df&#91;</span><span style="color: #6CB6FF">complete.cases</span><span style="color: #ADBAC7">(df), , </span><span style="color: #F69D50">drop</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">FALSE</span><span style="color: #ADBAC7">&#93;</span></span>
<span class="line"><span style="color: #ADBAC7">  hull </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">chull</span><span style="color: #ADBAC7">(df</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">x, df</span><span style="color: #F47067">$</span><span style="color: #ADBAC7">y)</span></span>
<span class="line"><span style="color: #ADBAC7">  df&#91;hull, , </span><span style="color: #F69D50">drop</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">FALSE</span><span style="color: #ADBAC7">&#93;</span></span>
<span class="line"><span style="color: #ADBAC7">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(penguins, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(bill_len, bill_dep, </span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> species)) </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span><span style="color: #ADBAC7"> </span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># As a stat, provide a geom</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">stat_manual</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">geom</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;segment&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #768390"># function creates new xend/yend for segment</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">fun</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> make_centroids,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">linewidth</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">0.2</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">na.rm</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span></span>
<span class="line"><span style="color: #ADBAC7">  ) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #768390"># As a geom, provide the stat</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_polygon</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">stat</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;manual&quot;</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">fun</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> make_hull,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">NA</span><span style="color: #ADBAC7">,</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">linetype</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;dotted&quot;</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.tidyverse.org/blog/2025/09/ggplot2-4-0-0/figs/unnamed-chunk-30-1.png" alt="Image 10" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 25"></figure>



<h3 class="wp-block-heading">Connection</h3>



<p class="sm-p"><a href="https://ggplot2.tidyverse.org/reference/stat_connect.html" target="_blank" rel="noreferrer noopener nofollow"><code>stat_connect()</code></a> امکان ایجاد اتصالات پله‌ای یا سفارشی بین نقاط را فراهم می‌کند:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>eco &lt;- economics |>
  dplyr::mutate(year = lubridate::year(date)) |>
  dplyr::summarise(
    min = min(unemploy),
    max = max(unemploy),
    mid = median(unemploy),
    .by = year
  )

ggplot(eco, aes(year, y = mid, ymin = min, ymax = max)) +
  geom_line(stat = "connect") +
  geom_ribbon(stat = "connect", alpha = 0.4)
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">eco </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> economics </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #6CB6FF">dplyr</span><span style="color: #F47067">::</span><span style="color: #F69D50">mutate</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">year</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">lubridate</span><span style="color: #F47067">::</span><span style="color: #F69D50">year</span><span style="color: #ADBAC7">(date)) </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #6CB6FF">dplyr</span><span style="color: #F47067">::</span><span style="color: #F69D50">summarise</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">min</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">min</span><span style="color: #ADBAC7">(unemploy),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">max</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">max</span><span style="color: #ADBAC7">(unemploy),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">mid</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">median</span><span style="color: #ADBAC7">(unemploy),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">.by</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> year</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(eco, </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(year, </span><span style="color: #F69D50">y</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> mid, </span><span style="color: #F69D50">ymin</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> min, </span><span style="color: #F69D50">ymax</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> max)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_line</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">stat</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;connect&quot;</span><span style="color: #ADBAC7">) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_ribbon</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">stat</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;connect&quot;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">alpha</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">0.4</span><span style="color: #ADBAC7">)</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-14-1024x632.png" alt="image 14 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89363" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 26" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-14-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-14-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-14-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-14.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="sm-p">همچنین می‌توانید از یک ماتریس عددی 2 ستونی برای ترسیم انواع دیگر اتصالات استفاده کنید. به عنوان مثال اگر از&nbsp;<a href="https://rdrr.io/r/stats/Logistic.html" rel="nofollow noopener" target="_blank"><code>plogis()</code></a>&nbsp;برای ایجاد یک انتقال لجستیک، می توانیم اتصالات مانندی ‌نمودار Bump ایجاد کنید.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>x &lt;- seq(0, 1, length.out = 20)&#91;-1&#93;
smooth &lt;- cbind(x, scales::rescale(plogis(x, location = 0.5, scale = 0.1)))
zigzag &lt;- cbind(c(0.4, 0.6, 1), c(0.75, 0.25, 1))

ggplot(head(eco, 10), aes(year, y = mid)) +
  geom_point() +
  stat_connect(aes(colour = "smooth"), connection = smooth) +
  stat_connect(aes(colour = "zigzag"), connection = zigzag)</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">x </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">seq</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">length.out</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">20</span><span style="color: #ADBAC7">)&#91;</span><span style="color: #F47067">-</span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">&#93;</span></span>
<span class="line"><span style="color: #ADBAC7">smooth </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">cbind</span><span style="color: #ADBAC7">(x, </span><span style="color: #6CB6FF">scales</span><span style="color: #F47067">::</span><span style="color: #F69D50">rescale</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">plogis</span><span style="color: #ADBAC7">(x, </span><span style="color: #F69D50">location</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">scale</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">0.1</span><span style="color: #ADBAC7">)))</span></span>
<span class="line"><span style="color: #ADBAC7">zigzag </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">cbind</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.4</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.6</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">), </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.75</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.25</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">1</span><span style="color: #ADBAC7">))</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">head</span><span style="color: #ADBAC7">(eco, </span><span style="color: #6CB6FF">10</span><span style="color: #ADBAC7">), </span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(year, </span><span style="color: #F69D50">y</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> mid)) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_point</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">stat_connect</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;smooth&quot;</span><span style="color: #ADBAC7">), </span><span style="color: #F69D50">connection</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> smooth) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">stat_connect</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">aes</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;zigzag&quot;</span><span style="color: #ADBAC7">), </span><span style="color: #F69D50">connection</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> zigzag)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-15-1024x632.png" alt="image 15 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89364" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 27" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-15-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-15-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-15-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-15.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">معکوس‌سازی مختصات</h2>



<p class="sm-p">تبدیل کردن معکوس که پیش‌از این با محدودیت‌هایی روبرو بوده، یا برای مثال در مقیاس‌های گسسته پشتیبانی نمی‌شده الان با reverse امکان‌پذیر شده‌است. آرگومان <code>reverse</code> برای سیستم‌های مختصات (coords) اضافه شده است که معکوس‌سازی محورها را ساده‌تر می‌کند.  این آرگومان می‌تواند &nbsp;<code>"none"</code>، <code>"x"</code>، <code>"y"</code>&nbsp;یا&nbsp;<code>"xy"</code> باشد.  در <a href="https://ggplot2.tidyverse.org/reference/coord_radial.html" rel="nofollow noopener" target="_blank"><code>coord_radial()</code></a>، این آرگومان جایگزین <code>direction</code> شده است.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>world &lt;- sf::st_as_sf(maps::map('world', plot = FALSE, fill = TRUE))

ggplot(world) +
  geom_sf() +
  coord_sf(reverse = "y")</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #ADBAC7">world </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">sf</span><span style="color: #F47067">::</span><span style="color: #F69D50">st_as_sf</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">maps</span><span style="color: #F47067">::</span><span style="color: #F69D50">map</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&#39;world&#39;</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">plot</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">FALSE</span><span style="color: #ADBAC7">, </span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">TRUE</span><span style="color: #ADBAC7">))</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F69D50">ggplot</span><span style="color: #ADBAC7">(world) </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">geom_sf</span><span style="color: #ADBAC7">() </span><span style="color: #F47067">+</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">coord_sf</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">reverse</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;y&quot;</span><span style="color: #ADBAC7">)</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative">R</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="632" src="https://d-learn.ir/wp-content/uploads/2025/09/image-16-1024x632.png" alt="image 16 | به‌روزرسانی بسته ggplot2 +تغییرات 4.0" class="wp-image-89365" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 28" srcset="https://d-learn.ir/wp-content/uploads/2025/09/image-16-1024x632.png 1024w, https://d-learn.ir/wp-content/uploads/2025/09/image-16-300x185.png 300w, https://d-learn.ir/wp-content/uploads/2025/09/image-16-768x474.png 768w, https://d-learn.ir/wp-content/uploads/2025/09/image-16.png 1344w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">امکانات برای افزونه‌ها</h2>



<h3 class="wp-block-heading">لایه‌ها</h3>



<p>تابع <a href="https://ggplot2.tidyverse.org/reference/gg_par.html" rel="nofollow noopener" target="_blank"><code>gg_par()</code></a> برای تبدیل تنظیمات <code>ggplot2</code> به تنظیمات <code>grid</code> معرفی شده است:</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>gg_par(lwd = 5)
#> $lwd
#> &#91;1&#93; 14.22638
grid::convertUnit(unit(5, "mm"), "pt")
#> &#91;1&#93; 14.2263779527559points</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #F69D50">gg_par</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">lwd</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #768390">#&gt; $lwd</span></span>
<span class="line"><span style="color: #768390">#&gt; &#91;1&#93; 14.22638</span></span>
<span class="line"><span style="color: #6CB6FF">grid</span><span style="color: #F47067">::</span><span style="color: #F69D50">convertUnit</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">unit</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">5</span><span style="color: #ADBAC7">, </span><span style="color: #96D0FF">&quot;mm&quot;</span><span style="color: #ADBAC7">), </span><span style="color: #96D0FF">&quot;pt&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #768390">#&gt; &#91;1&#93; 14.2263779527559points</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0" target="_blank" rel="noopener noreferrer">R</a></span></div>



<p><a href="https://ggplot2.tidyverse.org/reference/make_constructor.html" rel="nofollow noopener" target="_blank"><code>make_constructor()</code></a> تولید سازنده‌های خودکار برای کلاس‌های <code>Geom*</code> و <code>Stat*</code> را ساده می‌کند. </p>



<h3 class="wp-block-heading">تم‌ها</h3>



<p class="sm-p"><a href="https://ggplot2.tidyverse.org/reference/complete_theme.html" rel="nofollow noopener" target="_blank"><code>complete_theme()</code></a> برای تکمیل و اعتبارسنجی تم‌ها معرفی شده است. عناصر تم جدید <code>element_point</code> و <code>element_polygon</code> برای استفاده در افزونه‌ها اضافه شده‌اند. این  موارد در تنظیمات پایه ggplot2 استفاده نمی‌شوند.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled" data-code-block-pro-font-family="Code-Pro-Hack" style="font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#adbac7;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># Let's say your package 'my_pkg' registers custom point/polygon elements
register_theme_elements(
  my_pkg_point = element_point(colour = "red"),
  my_pkg_polygon = element_polygon(fill = NA),
  element_tree = list(
    my_pkg_point = el_def(element_point, inherit = "point"),
    my_pkg_polygon = el_def(element_polygon, inherit = "polygon")
  )
)

# Which should inherit from the root point/polygon theme elements
my_theme &lt;- theme(
  point = element_point(shape = 17),
  polygon = element_polygon(linetype = "dotted")
) |>
  complete_theme()

# Rendering your elements
pts &lt;- calc_element("my_pkg_point", my_theme) |>
  element_grob(
    x = c(0.2, 0.5, 0.8),
    y = c(0.8, 0.2, 0.5)
  )
poly &lt;- calc_element("my_pkg_polygon", my_theme) |>
  element_grob(
    x = c(0.1, 0.5, 0.9),
    y = c(0.9, 0.1, 0.5)
  )

# Drawing the elements
grid::grid.newpage()
grid::grid.draw(pts)
grid::grid.draw(poly)
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark-dimmed" style="background-color: #22272e" tabindex="0"><code><span class="line"><span style="color: #768390"># Let&#39;s say your package &#39;my_pkg&#39; registers custom point/polygon elements</span></span>
<span class="line"><span style="color: #F69D50">register_theme_elements</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">my_pkg_point</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">colour</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;red&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">my_pkg_polygon</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_polygon</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">fill</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">NA</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">element_tree</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">list</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">my_pkg_point</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">el_def</span><span style="color: #ADBAC7">(element_point, </span><span style="color: #F69D50">inherit</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;point&quot;</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">my_pkg_polygon</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">el_def</span><span style="color: #ADBAC7">(element_polygon, </span><span style="color: #F69D50">inherit</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;polygon&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"><span style="color: #ADBAC7">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #768390"># Which should inherit from the root point/polygon theme elements</span></span>
<span class="line"><span style="color: #ADBAC7">my_theme </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">theme</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">point</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_point</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">shape</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">17</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">polygon</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">element_polygon</span><span style="color: #ADBAC7">(</span><span style="color: #F69D50">linetype</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #96D0FF">&quot;dotted&quot;</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">) </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">complete_theme</span><span style="color: #ADBAC7">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #768390"># Rendering your elements</span></span>
<span class="line"><span style="color: #ADBAC7">pts </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">calc_element</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&quot;my_pkg_point&quot;</span><span style="color: #ADBAC7">, my_theme) </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">element_grob</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.2</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.8</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">y</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.8</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.2</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"><span style="color: #ADBAC7">poly </span><span style="color: #F47067">&lt;-</span><span style="color: #ADBAC7"> </span><span style="color: #F69D50">calc_element</span><span style="color: #ADBAC7">(</span><span style="color: #96D0FF">&quot;my_pkg_polygon&quot;</span><span style="color: #ADBAC7">, my_theme) </span><span style="color: #F47067">|&gt;</span></span>
<span class="line"><span style="color: #ADBAC7">  </span><span style="color: #F69D50">element_grob</span><span style="color: #ADBAC7">(</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">x</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.1</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.9</span><span style="color: #ADBAC7">),</span></span>
<span class="line"><span style="color: #ADBAC7">    </span><span style="color: #F69D50">y</span><span style="color: #ADBAC7"> </span><span style="color: #F47067">=</span><span style="color: #ADBAC7"> </span><span style="color: #6CB6FF">c</span><span style="color: #ADBAC7">(</span><span style="color: #6CB6FF">0.9</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.1</span><span style="color: #ADBAC7">, </span><span style="color: #6CB6FF">0.5</span><span style="color: #ADBAC7">)</span></span>
<span class="line"><span style="color: #ADBAC7">  )</span></span>
<span class="line"></span>
<span class="line"><span style="color: #768390"># Drawing the elements</span></span>
<span class="line"><span style="color: #6CB6FF">grid</span><span style="color: #F47067">::</span><span style="color: #F69D50">grid.newpage</span><span style="color: #ADBAC7">()</span></span>
<span class="line"><span style="color: #6CB6FF">grid</span><span style="color: #F47067">::</span><span style="color: #F69D50">grid.draw</span><span style="color: #ADBAC7">(pts)</span></span>
<span class="line"><span style="color: #6CB6FF">grid</span><span style="color: #F47067">::</span><span style="color: #F69D50">grid.draw</span><span style="color: #ADBAC7">(poly)</span></span>
<span class="line"></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#22272e;color:#9eadbd;font-size:12px;line-height:1;position:relative"><a class="cbp-footer-link" href="/r4da" style="color:#9eadbd;text-decoration:none;font-weight:normal;border:none;background:none;border-radius:0;padding:0;margin:0">R</a></span></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.tidyverse.org/blog/2025/09/ggplot2-4-0-0/figs/unnamed-chunk-38-1.png" alt="Image 12" title="به‌روزرسانی بسته ggplot2 +تغییرات 4.0 29"></figure>



<p></p>





<p></p>
<p>The post <a rel="nofollow" href="https://d-learn.ir/ggplot2-4-update/">به‌روزرسانی بسته ggplot2 +تغییرات ۴.۰</a> appeared first on <a rel="nofollow" href="https://d-learn.ir">مدرسه پردازش و تحلیل داده دقیقه</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d-learn.ir/ggplot2-4-update/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
