{"id":2726,"date":"2024-09-29T23:06:08","date_gmt":"2024-09-29T14:06:08","guid":{"rendered":"https:\/\/secondlife.lol\/?p=2726"},"modified":"2024-11-23T23:29:22","modified_gmt":"2024-11-23T14:29:22","slug":"baseball-field-positions-r-visualization","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/zh\/baseball-field-positions-r-visualization\/","title":{"rendered":"\u68d2\u7403\u4f4d\u7f6e\u548c\u7528 R \u7ed8\u5236\u7684\u5e26\u6709\u68d2\u7403\u4f4d\u7f6e\u7f16\u53f7\u7684\u7403\u573a\u7ed3\u6784\u56fe"},"content":{"rendered":"<p class=\"wp-block-paragraph\">2024 \u5e74 KBO \u8054\u8d5b\u5c06\u4e8e 9 \u6708 15 \u65e5\u9996\u6b21\u8fdb\u5165\u5343\u4e07\u4e0a\u5ea7\u7387\u65f6\u4ee3\uff0c\u6211\u4eec\u7279\u5199\u6b64\u6587\u4ee5\u793a\u5e86\u795d\u3002\u5728\u68d2\u7403\u6bd4\u8d5b\u4e2d\uff0c\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u4f5c\u7528\u90fd\u662f\u51b3\u5b9a\u6bd4\u8d5b\u6210\u8d25\u7684\u91cd\u8981\u56e0\u7d20\u3002\u5728\u4ee5\u4e0b\u5185\u5bb9\u4e2d <strong>\u63cf\u8ff0\u68d2\u7403\u4f4d\u7f6e\uff0c\u4f7f\u7528 R \u5c06\u7403\u573a\u7ed3\u6784\u548c\u4f4d\u7f6e\u53ef\u89c6\u5316<\/strong>\u8fd9\u6837\u60a8\u5c31\u53ef\u4ee5\u76f4\u89c2\u5730\u4e86\u89e3\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u4f4d\u7f6e\u548c\u4f5c\u7528\u3002\u5982\u679c\u60a8\u662f\u68d2\u7403\u65b0\u624b\uff0c\u6216\u8005\u53ea\u662f\u5bf9\u5404\u4f4d\u7f6e\u7684\u4f5c\u7528\u611f\u5230\u597d\u5947\uff0c\u672c\u5e16\u5c06\u4e3a\u60a8\u63d0\u4f9b\u6700\u57fa\u672c\u7684\u68d2\u7403\u77e5\u8bc6\u4e4b\u4e00\u3002<\/p>\n\n\n<style>.kb-image2726_31256c-a4 .kb-image-has-overlay:after{opacity:0.3;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.kb-image2726_31256c-a4 img.kb-img, .kb-image2726_31256c-a4 .kb-img img{border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}<\/style>\n<div class=\"wp-block-kadence-image kb-image2726_31256c-a4\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1200\" height=\"671\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-9.jpg\" alt=\"\uc57c\uad6c \ud3ec\uc9c0\uc158 \ud3ec\uc2a4\ud2b8 \uadf8\ub9bc\" class=\"kb-img wp-image-2728\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-9.jpg 1200w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-9-300x168.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-9-600x336.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-9-768x429.jpg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{color:var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{color:var(--global-palette2, #2B6CB0);font-size:28px;font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list{color:var(--global-palette1, #3182CE);line-height:2em;font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list .kb-table-of-contents__entry:hover{color:var(--global-palette6, #718096);}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}<\/style>\n\n\n<h2 class=\"wp-block-heading\">\u5bf9\u68d2\u7403\u4f4d\u7f6e\u7684\u57fa\u672c\u4e86\u89e3<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u68d2\u7403\u6709\u4e5d\u4e2a\u4f4d\u7f6e\uff0c\u6bcf\u4e2a\u4f4d\u7f6e\u90fd\u5728\u7403\u573a\u4e0a\u53d1\u6325\u7740\u72ec\u7279\u7684\u4f5c\u7528\u3002 <strong>\u68d2\u7403\u4f4d\u7f6e\u7f16\u53f7<\/strong>\u7f16\u53f7\u4e3a 1 \u81f3 9\uff0c\u6bcf\u4e2a\u6570\u5b57\u4ee3\u8868\u4e00\u4e2a\u7279\u5b9a\u7684\u4f4d\u7f6e\u3002\u4f8b\u5982 <strong>1 \u662f\u6295\u624b<\/strong>, <strong>2 \u662f\u6355\u624b<\/strong>\u7684\u4f4d\u7f6e\u3002\u8fd9\u4e9b\u4f4d\u7f6e\u53f7\u7801\u5728\u6bd4\u8d5b\u4e2d\u7684\u5404\u79cd\u60c5\u51b5\u4e0b\u53d1\u6325\u7740\u91cd\u8981\u4f5c\u7528\u3002<\/p>\n\n\n<style>.kb-image2726_7e7628-22 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image2726_7e7628-22\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"709\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-10-600x709.jpg\" alt=\"\uc57c\uad6c \ud3ec\uc9c0\uc158 \ub3c4\ud45c \uadf8\ub9bc\" class=\"kb-img wp-image-2730\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-10-600x709.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-10-300x354.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-10-768x907.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-10.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u68d2\u7403\u4f4d\u7f6e\u7f16\u53f7\u548c\u4f5c\u7528<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>1: \u6295\u624b<\/strong> - \u6295\u624b\u662f\u4e3b\u8981\u7684\u6295\u7403\u624b\u3002\u4ece\u6295\u624b\u4e18\u5230\u51fb\u7403\u624b\uff0c\u4ed6\u4eec\u6295\u51fa\u7684\u7403\u5728\u6bd4\u8d5b\u6d41\u7a0b\u4e2d\u53d1\u6325\u7740\u91cd\u8981\u4f5c\u7528\u3002<\/li>\n\n\n\n<li><strong>2 \u53f7\uff1a\u6355\u624b<\/strong> - \u6355\u624b\u4f4d\u4e8e\u51fb\u7403\u624b\u540e\u9762\uff0c\u63a5\u6295\u624b\u6295\u51fa\u7684\u7403\uff0c\u662f\u9632\u5b88\u548c\u6bd4\u8d5b\u7ba1\u7406\u4e2d\u7684\u91cd\u8981\u804c\u4f4d\u3002<\/li>\n\n\n\n<li><strong>3\u53f7\uff1a\u4e00\u5792\u624b\uff08\u4e00\u5792\u624b\uff09<\/strong> - \u4e00\u5792\u624b\u7684\u4f4d\u7f6e\u5728\u4e00\u5792\uff0c\u8d1f\u8d23\u5728\u51fb\u7403\u624b\u63a8\u8fdb\u5230\u4e00\u5792\u65f6\u5c06\u7403\u51fb\u51fa\u3002<\/li>\n\n\n\n<li><strong>\u56db\u53f7\u4e8c\u5792\u624b<\/strong> - \u4e8c\u5792\u624b\u7684\u4f4d\u7f6e\u9760\u8fd1\u4e8c\u5792\uff0c\u662f\u5185\u91ce\u9632\u5b88\u7684\u91cd\u70b9\u3002<\/li>\n\n\n\n<li><strong>\u7b2c 5 \u4f4d\uff1a\u4e09\u5792\u624b<\/strong> - \u4e09\u5792\u624b\u9632\u5b88\u4e09\u5792\uff0c\u9700\u8981\u5728\u5bf9\u624b\u8dd1\u5411\u4e09\u5792\u65f6\u8fc5\u901f\u505a\u51fa\u53cd\u5e94\u3002<\/li>\n\n\n\n<li><strong>6 \u53f7\uff1a\u6e38\u51fb\u624b<\/strong> - \u6e38\u51fb\u624b\u4f4d\u4e8e\u4e8c\u5792\u548c\u4e09\u5792\u4e4b\u95f4\uff0c\u662f\u5185\u91ce\u9632\u5b88\u7684\u91cd\u8981\u652f\u67f1\u3002<\/li>\n\n\n\n<li><strong>7 \u53f7\uff1a\u5de6\u5916\u91ce\u624b<\/strong> - \u5de6\u5916\u91ce\u624b\u5728\u5916\u573a\u5de6\u4fa7\uff0c\u8d1f\u8d23\u63a5\u4f4f\u957f\u8ddd\u79bb\u98de\u7403\u6216\u98de\u5165\u5916\u573a\u7684\u7403\u3002<\/li>\n\n\n\n<li><strong>8\u53f7\uff1a\u4e2d\u5916\u91ce\u624b<\/strong> - \u4e2d\u573a\u5185\u91ce\u624b\u5728\u5916\u573a\u4e2d\u592e\u8fdb\u884c\u9632\u5b88\uff0c\u662f\u5916\u573a\u7684\u7126\u70b9\u3002<\/li>\n\n\n\n<li><strong>9 \u53f7\uff1a\u53f3\u5916\u91ce\u624b<\/strong> - \u53f3\u5916\u91ce\u624b\u7684\u4f4d\u7f6e\u5728\u5916\u91ce\u7684\u53f3\u4fa7\uff0c\u8d1f\u8d23\u5feb\u901f\u63a5\u7403\u5e76\u5c06\u7403\u6254\u51fa\u3002<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u50cf\u8fd9\u6837 <strong>\u68d2\u7403\u4f4d\u7f6e<\/strong>\u5728\u6bd4\u8d5b\u6d41\u7a0b\u4e2d\u53d1\u6325\u7740\u91cd\u8981\u4f5c\u7528\uff0c\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u7403\u5458\u90fd\u80fd\u5171\u540c\u52a0\u5f3a\u7403\u961f\u7684\u9632\u5b88\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5728 R \u4e2d\u7ed8\u5236\u68d2\u7403\u573a\u7ed3\u6784\uff1a\u4f4d\u7f6e\u53ef\u89c6\u5316<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u73b0\u5728 <strong>\u4f7f\u7528 R \u5c06\u68d2\u7403\u573a\u7684\u7ed3\u6784\u548c\u68d2\u7403\u4f4d\u7f6e\u53ef\u89c6\u5316<\/strong>\u8fd9\u6837\u5c31\u5f88\u5bb9\u6613\u7406\u89e3\u6bcf\u4e2a\u4f4d\u7f6e\u5728\u7403\u573a\u4e2d\u7684\u4f4d\u7f6e\u3002\u4f7f\u7528 R \u7684\u53ef\u89c6\u5316\u5e93 <code><a href=\"https:\/\/ggplot2.tidyverse.org\/\" data-type=\"link\" data-id=\"https:\/\/ggplot2.tidyverse.org\/\" target=\"_blank\" rel=\"noopener\">ggplot2<\/a><\/code>\u7ed8\u5236\u7b80\u5355\u7684\u68d2\u7403\u573a\u5730\u548c\u4f4d\u7f6e\u56fe\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u662f R \u4ee3\u7801\u4ee5\u53ca\u5982\u4f55\u7ed8\u5236\u83f1\u5f62\u68d2\u7403\u573a\u7ed3\u6784\u7684\u8be6\u7ec6\u8bf4\u660e\uff0c\u5176\u4e2d\u5220\u9664\u4e86\u5750\u6807\u7ebf\u548c\u4e0d\u5fc5\u8981\u7684\u5143\u7d20\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">R \u4ee3\u7801\uff1a \u7ed8\u5236\u83f1\u5f62\u68d2\u7403\u573a\u548c\u4f4d\u7f6e\u56fe<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u52a0\u8f7d\u6240\u9700\u7684\u5e93\nlibrary(ggplot2)\n\n\u8bbe\u7f6e # \u68d2\u7403\u573a\u7684\u83f1\u5f62\u5750\u6807 (home-1b-2b-3b-home)\nbaseball_field &lt;- data.frame(\n    x = c(0, 90, 0, -90, 0), # \u672c\u5792\u3001\u4e00\u5792\u3001\u4e8c\u5792\u3001\u4e09\u5792\u3001\u56de\u672c\u5792\u5750\u6807\n    y = c(0, 90, 180, 90, 0)\n)\n\n\u8bbe\u7f6e # \u4f4d\u7f6e\u6570\u636e\uff08\u7528\u6362\u884c\u7b26\u663e\u793a\u6570\u5b57\u548c\u97e9\u6587\/\u82f1\u6587\uff09\npositions &lt;- data.frame(\n    position = c(&quot;1.Pitcher&quot;, &quot;2.Catcher&quot;, &quot;3.First Baseman&quot;\u3001\n                 &quot;4.\u4e8c\u5792\u624b&quot;\u3001&quot;5.\u4e09\u5792\u624b&quot;\u3001&quot;6.\u6e38\u51fb\u624b\n                 &quot;\u5de6\u5916\u91ce\u624b&quot;\u3001&quot;8.\u4e2d\u5916\u91ce\u624b&quot;\u3001&quot;9.\u53f3\u5916\u91ce\u624b&quot;\uff09\u3001\n    x = c(0\uff0c0\uff0c90\uff0c45\uff0c-90\uff0c-45\uff0c-130\uff0c0\uff0c130)\uff0c# x \u5750\u6807\u4e0e\u4f4d\u7f6e\u76f8\u5173\n    y = c(60, -10, 90, 120, 90, 120, 180, 210, 180)\uff0c\u6839\u636e # \u4f4d\u7f6e\u786e\u5b9a\u7684 y \u5750\u6807\n    vjust = c(-1, -1, -1, -1, -1, -1, -1, 2, 2, 2) # \u4e3a\u6bcf\u4e2a\u4f4d\u7f6e\u8bbe\u7f6e\u6587\u672c\u7684\u5782\u76f4\u5bf9\u9f50\u65b9\u5f0f\n)\n\n# \u7ed8\u5236\u7403\u573a\u548c\u4f4d\u7f6e\u7684\u4ee3\u7801\nggplot() + (#)\n    geom_polygon(data = baseball_field, aes(x = x, y = y), fill = &quot;green&quot;, color = &quot;white&quot;, size = 1.5) + # \u7ed8\u5236\u94bb\u77f3\u56fe\n    geom_point(data = positions, aes(x = x, y = y), color = &quot;red&quot;, size = 5) + # \u7ed8\u5236\u4e00\u4e2a\u4f4d\u7f6e\u70b9\n    geom_text(data = positions, aes(x = x, y = y, label = position, vjust = vjust), color = &quot;blue&quot;, size = 6) + # \u663e\u793a\u4f4d\u7f6e\u540d\u79f0\n    theme_void() # \u5220\u9664\u4e0d\u5fc5\u8981\u7684\u5750\u6807\u8f74\u548c\u5750\u6807<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b8c\u6574\u4ee3\u7801\u8bf4\u660e<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">1. <strong>\u52a0\u8f7d\u6240\u9700\u7684\u5e93<\/strong><\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>library(ggplot2)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ggplot2<\/strong>R \u4e2d\u4f7f\u7528\u6700\u5e7f\u6cdb\u7684\u53ef\u89c6\u5316\u8f6f\u4ef6\u5305\u3002 <code>ggplot2<\/code>\u4ee5\u53ef\u89c6\u5316\u68d2\u7403\u573a\u7684\u83f1\u5f62\u7ed3\u6784\u548c\u6bcf\u4e2a\u4f4d\u7f6e\u3002\u8be5\u8f6f\u4ef6\u5305\u53ef\u6839\u636e\u6570\u636e\u5e27\u8f7b\u677e\u7ed8\u5236\u53ef\u89c6\u5316\u5143\u7d20\uff08\u5f62\u72b6\u3001\u6587\u672c\u3001\u70b9\u7b49\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">2. <strong>\u8bbe\u7f6e\u68d2\u7403\u83f1\u5f62\u7684\u5750\u6807<\/strong><\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code># \u68d2\u7403\u573a\u83f1\u5f62\u5750\u6807\uff08\u4e3b\u573a-1B-2B-3B-\u4e3b\u573a\uff09\nbaseball_field &lt;- data.frame(\n  x = c(0, 90, 0, -90, 0), # \u672c\u5792\u3001\u4e00\u5792\u3001\u4e8c\u5792\u3001\u4e09\u5792\u3001\u672c\u5792\u5750\u6807\n  y = c(0, 90, 180, 90, 0)\n)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u68d2\u7403\u573a\u6570\u636e\u5e27<\/strong>:\u8bbe\u7f6e\u7ed8\u5236\u68d2\u7403\u573a\u5f62\u72b6\u7684\u5750\u6807\u3002<\/li>\n\n\n\n<li><strong>x \u5750\u6807<\/strong>x \u5750\u6807\uff1a\u4ece\u672c\u5792\u5f00\u59cb\uff0c\u79fb\u52a8\u5230\u4e00\u5792\uff08+90\uff09\u3001\u4e8c\u5792\uff080\uff09\u3001\u4e09\u5792\uff08-90\uff09\uff0c\u7136\u540e\u56de\u5230\u672c\u5792\u3002<\/li>\n\n\n\n<li><strong>y \u5750\u6807<\/strong>Y\uff1a\u4ece\u672c\u5792\uff080\uff09\u5f00\u59cb\uff0c\u5230\u4e00\u5792\uff0890\uff09\u3001\u4e8c\u5792\uff08180\uff09\u3001\u4e09\u5792\uff0890\uff09\uff0c\u518d\u56de\u5230\u672c\u5792\u7684 Y \u5750\u6807\u3002<\/li>\n\n\n\n<li>\u901a\u8fc7\u8fd9\u4e9b\u5750\u6807\uff0c\u60a8\u53ef\u4ee5\u76f4\u89c2\u5730\u753b\u51fa\u68d2\u7403\u573a\u4e0a\u94bb\u77f3\u7684\u5f62\u72b6\u3002<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">3. <strong>\u8bbe\u7f6e\u4f4d\u7f6e\u6570\u636e<\/strong><\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>\u8bbe\u7f6e # \u4f4d\u7f6e\u6570\u636e\uff08\u663e\u793a\u6570\u5b57\u548c\u97e9\u6587\/\u82f1\u6587\uff0c\u5e26\u6362\u884c\u7b26\uff09\npositions &lt;- data.frame(\n  position = c(&quot;1.Pitcher&quot;, &quot;2.Catcher&quot;, &quot;3.First Baseman&quot;\u3001\n               &quot;4.\u4e8c\u5792\u624b&quot;\u3001&quot;5.\u4e09\u5792\u624b&quot;\u3001&quot;6.\u6e38\u51fb\u624b\n               &quot;\u5de6\u5916\u91ce\u624b&quot;\u3001&quot;8.\u4e2d\u5916\u91ce\u624b&quot;\u3001&quot;9.\u53f3\u5916\u91ce\u624b&quot;\uff09\u3001\n  x = c(0\uff0c0\uff0c90\uff0c45\uff0c-90\uff0c-45\uff0c-130\uff0c0\uff0c130)\uff0c# x \u5750\u6807\u4e0e\u4f4d\u7f6e\u76f8\u5173\n  y = c(60, -10, 90, 120, 90, 120, 180, 210, 180)\uff0c\u6839\u636e # \u4f4d\u7f6e\u786e\u5b9a\u7684 y \u5750\u6807\n  vjust = c(-1, -1, -1, -1, -1, -1, -1, 2, 2, 2) # \u4e3a\u6bcf\u4e2a\u4f4d\u7f6e\u8bbe\u7f6e\u6587\u672c\u7684\u5782\u76f4\u5bf9\u9f50\u65b9\u5f0f\n)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f4d\u7f6e\u6570\u636e\u5e27<\/strong>\u5782\u76f4\u5bf9\u9f50\uff1a\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u540d\u79f0\u3001\u5750\u6807\u548c\u6587\u672c\u7684\u5782\u76f4\u5bf9\u9f50 (<code>\u8c03\u6574<\/code>)\u5728\u9875\u9762\u4e0a\u3002<\/li>\n\n\n\n<li><strong>\u4f4d\u7f6e<\/strong>\uff1a\u4ee5 \"No.\u97e9\u6587\u540d\u79f0\uff08\u82f1\u6587\u540d\u79f0\uff09\"\u683c\u5f0f\u547d\u540d\u3002<strong> <code>\\n<\/code>\u8868\u793a\u6362\u884c\uff0c\u5c06\u82f1\u6587\u540d\u79f0\u4e0b\u79fb\u4e00\u884c<\/strong>.\n<ul class=\"wp-block-list\">\n<li>\u4f8b\u5982 <strong>1. \u6295\u624b<\/strong>, <strong>2. \u6355\u624b<\/strong> \u7b49\u7b49<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>x, y \u5750\u6807<\/strong>\u8bbe\u7f6e\u6bcf\u4e2a\u4f4d\u7f6e\u5728\u68d2\u7403\u573a\u4e0a\u7684\u4f4d\u7f6e\u3002\u8fd9\u4e9b\u5750\u6807\u662f\u6839\u636e\u771f\u5b9e\u68d2\u7403\u573a\u4e0a\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u4f4d\u7f6e\u8bbe\u7f6e\u7684\u3002\n<ul class=\"wp-block-list\">\n<li><strong>\u6295\u624b 1\uff08\u6295\u624b\uff09<\/strong>\u4f4d\u4e8e\u571f\u4e18\u4e0a\u3001 <strong>x = 0<\/strong>, <strong>y = 60<\/strong>\u5728<\/li>\n\n\n\n<li><strong>\u6355\u624b 2\uff08\u6355\u624b\uff09<\/strong>\u4f4d\u4e8e\u8759\u8760\u540e\u9762\u3001 <strong>x = 0<\/strong>, <strong>y = -10<\/strong>\u5728<\/li>\n\n\n\n<li><strong>7 \u53f7\u5de6\u5916\u91ce\u624b\uff08\u5de6\u5916\u91ce\u624b\uff09<\/strong>\u4f4d\u4e8e\u5916\u573a\u5de6\u4fa7\u3001 <strong>x = -130<\/strong>, <strong>y = 180<\/strong>\u5728<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u8c03\u6574<\/strong>\u8bbe\u7f6e\u5782\u76f4\u5bf9\u9f50\u503c\uff0c\u4f7f\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u6587\u672c\u663e\u793a\u5728\u70b9\u7684\u4e0a\u65b9\u6216\u4e0b\u65b9\u3002\n<ul class=\"wp-block-list\">\n<li><strong>vjust = -1<\/strong>\u6587\u5b57\u663e\u793a\u5728\u5706\u70b9\u4e0a\u65b9\u3002\u8fd9\u9002\u7528\u4e8e 1 \u81f3 6 \u53f7\u4f4d\u7f6e\u3002<\/li>\n\n\n\n<li><strong>vjust = 2<\/strong>\u6587\u5b57\u663e\u793a\u5728\u5706\u70b9\u4e0b\u65b9\u3002\u8fd9\u9002\u7528\u4e8e 7 \u53f7\u4f4d\u7f6e\uff08\u5de6\u5916\u91ce\u624b\uff09\u30018 \u53f7\u4f4d\u7f6e\uff08\u4e2d\u5916\u91ce\u624b\uff09\u548c 9 \u53f7\u4f4d\u7f6e\uff08\u53f3\u5916\u91ce\u624b\uff09\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">4. <strong>\u7ed8\u5236\u7403\u573a\u548c\u4f4d\u7f6e\u7684\u4ee3\u7801<\/strong><\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>ggplot() + #\n  geom_polygon(data = baseball_field, aes(x = x, y = y), fill = \"green\", color = \"white\", size = 1.5) + # \u7ed8\u5236\u4e00\u4e2a\u83f1\u5f62\n  geom_point(data = positions, aes(x = x, y = y), color = \"red\", size = 5) + # \u7ed8\u5236\u4e00\u4e2a\u4f4d\u7f6e\u70b9\n  geom_text(data = positions, aes(x = x, y = y, label = position, vjust = vjust), color = \"blue\", size = 4) + # \u663e\u793a\u4f4d\u7f6e\u540d\u79f0\n  theme_void() # \u5220\u9664\u4e0d\u5fc5\u8981\u7684\u5750\u6807\u8f74\u548c\u5750\u6807<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ggplot()<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>ggplot()<\/code>\u662f R \u4e2d\u7ed8\u5236\u56fe\u5f62\u7684\u9ed8\u8ba4\u51fd\u6570\u3002 <code>geom_polygon()<\/code>, <code>geom_point()<\/code>, <code>geom_text()<\/code> \u548c\u5176\u4ed6\u53ef\u89c6\u5316\u5143\u7d20\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>geom_polygon() \u51fd\u6570<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>geom_polygon()<\/strong>\u662f\u4e00\u4e2a\u5728\u68d2\u7403\u573a\u4e0a\u7ed8\u5236\u94bb\u77f3\u5f62\u72b6\u7684\u51fd\u6570\u3002<\/li>\n\n\n\n<li><strong>data = \u68d2\u7403\u573a<\/strong>\uff1a\u7528\u4e8e\u7ed8\u5236\u83f1\u5f62\u7684\u5750\u6807\u6570\u636e\u3002 <code>\u68d2\u7403\u573a<\/code> \u4f7f\u7528\u6570\u636e\u6846\u7ed8\u5236\u4ece\u672c\u5792-\u4e00\u5792-\u4e8c\u5792-\u4e09\u5792-\u672c\u5792\u7684\u83f1\u5f62\u56fe\u3002<\/li>\n\n\n\n<li><strong>\u586b\u5145 = \"\u7eff\u8272\"<\/strong>:\u8ba9\u7403\u573a\u5145\u6ee1\u7eff\u8272\u3002<\/li>\n\n\n\n<li><strong>\u989c\u8272 = \"\u767d\u8272\"<\/strong>:\u5c06\u8fb9\u6846\u8bbe\u7f6e\u4e3a\u767d\u8272\uff0c\u4ee5\u786e\u5b9a\u94bb\u77f3\u7684\u8fb9\u754c\u3002<\/li>\n\n\n\n<li><strong>\u5927\u5c0f = 1.5<\/strong>:\u8bbe\u7f6e\u8fb9\u6846\u7684\u539a\u5ea6\uff0c\u4ee5\u7a81\u51fa\u83f1\u5f62\u8fb9\u6846\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>geom_point() \u51fd\u6570<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>geom_point()<\/strong>\u662f\u4e00\u4e2a\u7528\u7ea2\u70b9\u8868\u793a\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u51fd\u6570\u3002<\/li>\n\n\n\n<li><strong>\u6570\u636e = \u4f4d\u7f6e<\/strong>\uff1a\u6839\u636e\u4f4d\u7f6e\u5750\u6807\u663e\u793a\u4e00\u4e2a\u70b9\u3002<\/li>\n\n\n\n<li><strong>\u989c\u8272 = \"\u7ea2\u8272\"<\/strong>\uff1a\u4f4d\u7f6e\u7528\u7ea2\u70b9\u8868\u793a\u3002<\/li>\n\n\n\n<li><strong>\u5927\u5c0f = 5<\/strong>\u8bbe\u7f6e\u70b9\u7684\u5927\u5c0f\uff0c\u4f7f\u4f4d\u7f6e\u6e05\u6670\u53ef\u89c1\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>geom_text() \u51fd\u6570<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>geom_text()<\/strong>\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u53ef\u4ee5\u5728\u70b9\u7684\u4e0a\u65b9\uff08\u6216\u4e0b\u65b9\uff09\u4ee5\u6587\u672c\u5f62\u5f0f\u663e\u793a\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u540d\u79f0\u3002<\/li>\n\n\n\n<li><strong>\u6807\u7b7e = \u4f4d\u7f6e<\/strong>\u663e\u793a\u4f4d\u7f6e\u540d\u79f0\uff08\u7f16\u53f7\u3001\u97e9\u6587\u540d\u79f0\u548c\u82f1\u6587\u540d\u79f0\uff09\u3002<\/li>\n\n\n\n<li><strong>\u8c03\u6574<\/strong>: <code>\u804c\u4f4d<\/code> \u6570\u636e\u5e27\u5b9a\u4e49 <strong>\u8c03\u6574<\/strong> \u503c\uff0c\u4ee5\u663e\u793a\u5706\u70b9\u4e0a\u65b9\u6216\u4e0b\u65b9\u6bcf\u4e2a\u4f4d\u7f6e\u7684\u6587\u5b57\u3002\n<ul class=\"wp-block-list\">\n<li>1 \u81f3 6 \u53f7\u4f4d\u7f6e\u663e\u793a\u5728\u5706\u70b9\u4e0a\u65b9\uff0c7 \u81f3 9 \u53f7\u4f4d\u7f6e\u663e\u793a\u5728\u5706\u70b9\u4e0b\u65b9\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u989c\u8272 = \"\u84dd\u8272\"<\/strong>\u6587\u5b57\u989c\u8272\uff1a\u5c06\u6587\u5b57\u989c\u8272\u8bbe\u4e3a\u84dd\u8272\uff0c\u4f7f\u5176\u66f4\u6e05\u6670\u6613\u8bfb\u3002<\/li>\n\n\n\n<li><strong>\u5927\u5c0f = 4<\/strong>\u6587\u5b57\u5927\u5c0f\uff1a\u8bbe\u7f6e\u6587\u5b57\u5927\u5c0f\uff0c\u4f7f\u5176\u6e05\u6670\u53ef\u89c1\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>theme_void() \u51fd\u6570<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>theme_void()<\/strong>\u79fb\u9664\u56fe\u8868\u4e2d\u4e0d\u5fc5\u8981\u7684\u5750\u6807\u8f74\u3001\u5750\u6807\u7ebf\u548c\u80cc\u666f\u7b49\uff0c\u4ee5\u4fbf\u53ea\u663e\u793a\u5b57\u6bb5\u548c\u4f4d\u7f6e\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u603b\u7ed3\uff1a\u7528 R \u5c06\u68d2\u7403\u4f4d\u7f6e\u53ef\u89c6\u5316<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u4eec\u4ecb\u7ecd\u4e86\u68d2\u7403\u4f4d\u7f6e\u7684\u57fa\u672c\u89e3\u91ca\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528 R \u5c06\u68d2\u7403\u573a\u53ef\u89c6\u5316\u3002\u901a\u8fc7\u6570\u5b57\u548c\u82f1\u6587\u540d\u5b57\u4e86\u89e3\u5404\u4f4d\u7f6e\u7684\u4f5c\u7528\uff0c\u5e76\u7528 R \u5c06\u5176\u53ef\u89c6\u5316\uff0c\u8ba9\u6211\u4eec\u5bf9\u68d2\u7403\u6bd4\u8d5b\u6709\u4e86\u66f4\u6e05\u6670\u7684\u8ba4\u8bc6\u3002 \u5e0c\u671b\u8fd9\u7bc7\u6587\u7ae0\u80fd\u5e2e\u52a9\u60a8\u66f4\u6709\u8da3\u5730\u4e86\u89e3\u68d2\u7403\u6bd4\u8d5b\uff01<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u60a8\u662f\u6765\u5b66\u4e60\u68d2\u7403\u7410\u4e8b\u7684\uff0c\u800c\u4e14\u60a8\u5728\u60f3\uff1a\"\u54c7\uff0c\u5916\u9762\u7684\u4e16\u754c\u771f\u5927\uff0c\u4e0d\u77e5\u9053\u6211\u662f\u5426\u5e94\u8be5\u5c1d\u8bd5\u4e00\u4e0b\uff1f\"\u90a3\u4e48\uff0c\u4ee5\u4e0b\u5c31\u662f\u60a8\u9700\u8981\u4e86\u89e3\u7684\u5185\u5bb9\u3002 <a href=\"https:\/\/secondlife.lol\/zh\/r-rstudio-install\/\" data-type=\"post\" data-id=\"454\">\u5728 Windows \u4e0a\u5b89\u88c5 R\u3001RStudio<\/a> \u6211\u4eec\u5efa\u8bae\u60a8\u9605\u8bfb\u4ee5\u4e0b\u6587\u7ae0<\/p>","protected":false},"excerpt":{"rendered":"<p>2024 \u5e74 KBO \u8054\u8d5b\u5c06\u4e8e 9 \u6708 15 \u65e5\u9996\u6b21\u8fdb\u5165\u5343\u4e07\u4e0a\u5ea7\u7387\u65f6\u4ee3...<\/p>","protected":false},"author":3,"featured_media":2751,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[6],"tags":[305,300,304,303,301,302],"class_list":["post-2726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-r-coding","tag-kbo","tag-r-","tag-304","tag-303","tag-301","tag-302"],"taxonomy_info":{"category":[{"value":6,"label":"\uc54c(R)"}],"post_tag":[{"value":305,"label":"KBO"},{"value":300,"label":"R \uc2dc\uac01\ud654"},{"value":304,"label":"\uc57c\uad6c \ud3ec\uc9c0\uc158"},{"value":303,"label":"\uc57c\uad6c \ud3ec\uc9c0\uc158 \ubc88\ud638"},{"value":301,"label":"\uc57c\uad6c \ud3ec\uc9c0\uc158 \uc601\uc5b4"},{"value":302,"label":"\uc57c\uad6c\uc7a5 \uad6c\uc870"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/\uc57c\uad6c-\ud3ec\uc9c0\uc158-\ud3ec\uc2a4\ud2b8-\uc378\ub124\uc77c-600x600.jpg",600,600,true],"author_info":{"display_name":"TERE","author_link":"https:\/\/secondlife.lol\/zh\/author\/tere\/"},"comment_info":0,"category_info":[{"term_id":6,"name":"\uc54c(R)","slug":"r-coding","term_group":0,"term_taxonomy_id":6,"taxonomy":"category","description":"","parent":20,"count":61,"filter":"raw","cat_ID":6,"category_count":61,"category_description":"","cat_name":"\uc54c(R)","category_nicename":"r-coding","category_parent":20}],"tag_info":[{"term_id":305,"name":"KBO","slug":"kbo","term_group":0,"term_taxonomy_id":305,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":300,"name":"R \uc2dc\uac01\ud654","slug":"r-%ec%8b%9c%ea%b0%81%ed%99%94","term_group":0,"term_taxonomy_id":300,"taxonomy":"post_tag","description":"","parent":0,"count":12,"filter":"raw"},{"term_id":304,"name":"\uc57c\uad6c \ud3ec\uc9c0\uc158","slug":"%ec%95%bc%ea%b5%ac-%ed%8f%ac%ec%a7%80%ec%85%98","term_group":0,"term_taxonomy_id":304,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":303,"name":"\uc57c\uad6c \ud3ec\uc9c0\uc158 \ubc88\ud638","slug":"%ec%95%bc%ea%b5%ac-%ed%8f%ac%ec%a7%80%ec%85%98-%eb%b2%88%ed%98%b8","term_group":0,"term_taxonomy_id":303,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":301,"name":"\uc57c\uad6c \ud3ec\uc9c0\uc158 \uc601\uc5b4","slug":"%ec%95%bc%ea%b5%ac-%ed%8f%ac%ec%a7%80%ec%85%98-%ec%98%81%ec%96%b4","term_group":0,"term_taxonomy_id":301,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":302,"name":"\uc57c\uad6c\uc7a5 \uad6c\uc870","slug":"%ec%95%bc%ea%b5%ac%ec%9e%a5-%ea%b5%ac%ec%a1%b0","term_group":0,"term_taxonomy_id":302,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/2726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/comments?post=2726"}],"version-history":[{"count":5,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/2726\/revisions"}],"predecessor-version":[{"id":3657,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/2726\/revisions\/3657"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media\/2751"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media?parent=2726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/categories?post=2726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/tags?post=2726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}