{"id":2733,"date":"2024-10-03T23:18:25","date_gmt":"2024-10-03T14:18:25","guid":{"rendered":"https:\/\/secondlife.lol\/?p=2733"},"modified":"2024-09-29T23:36:56","modified_gmt":"2024-09-29T14:36:56","slug":"learn-baseball-rules-with-r-modern-visualization","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/zh\/learn-baseball-rules-with-r-modern-visualization\/","title":{"rendered":"\u5229\u7528 R \u53ef\u89c6\u5316\u6280\u672f\uff0c\u68d2\u7403\u89c4\u5219\uff08\u5982\u51fa\u5c40\u6570\uff09\u53d8\u5f97\u7b80\u5355\u6613\u61c2"},"content":{"rendered":"<p>\u5982\u679c\u60a8\u8ba4\u4e3a\u68d2\u7403\u89c4\u5219\u590d\u6742\u800c\u8270\u6da9\uff0c\u90a3\u60a8\u4e00\u5b9a\u4f1a\u5927\u9971\u773c\u798f\u3002 <strong>R<\/strong>\u901a\u8fc7\u6570\u636e\u9a71\u52a8\u7684\u53ef\u89c6\u5316\uff0c\u4ee5\u53ef\u89c6\u5316\u7684\u65b9\u5f0f\u89e3\u91ca\u68d2\u7403\u7684\u5173\u952e\u89c4\u5219\u3002 \u68d2\u7403\u662f\u4e00\u9879\u5982\u679c\u4f60\u4e86\u89e3\u89c4\u5219\u5c31\u4f1a\u73a9\u5f97\u66f4\u6709\u8da3\u7684\u8fd0\u52a8\u3002 \u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u4eec\u5c06\u4f7f\u7528 <strong>R \u4e2d\u7684\u68d2\u7403\u89c4\u5219\uff1a\u5982\u4f55\u5c06\u6570\u636e\u53ef\u89c6\u5316\uff0c\u4ee5\u7b80\u5355\u7684\u65b9\u5f0f\u89e3\u91ca\u590d\u6742\u7684\u89c4\u5219\u3002<\/strong>\u5728\u672c\u6587\u4e2d\u3002<\/p>\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<h3 class=\"wp-block-heading\">\u51fa\u5c40\u8ba1\u6570\u89c4\u5219\uff1a3 \u6b21\u673a\u4f1a\uff0c\u76f4\u89c2\u89c6\u56fe<\/h3>\n\n\n\n<p>\u68d2\u7403\u8fd0\u52a8\u6700\u57fa\u672c\u7684\u89c4\u5219\u4e4b\u4e00\u662f <strong>\u8ba1\u6570<\/strong>\u4e3a\u8fdb\u653b\u65b9\u3002\u6362\u8fb9\uff08\u8fdb\u653b\u65b9\u548c\u9632\u5b88\u65b9\uff09\u9700\u8981\u4e09\u6b21\u51fa\u5c40\u3002\u8ba9\u6211\u4eec\u7528 R \u6765\u5c06\u51fa\u5c40\u6570\u5f62\u8c61\u5316\u3002<\/p>\n\n\n<style>.kb-image2733_181730-8e .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-image2733_181730-8e img.kb-img, .kb-image2733_181730-8e .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-image2733_181730-8e\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"398\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-11-768x398.jpg\" alt=\"\uc57c\uad6c \uaddc\uce59 - \uc544\uc6c3 \uce74\uc6b4\ud2b8 \uadf8\ub9bc\" class=\"kb-img wp-image-2734\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-11-768x398.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-11-300x155.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-11-600x311.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/09\/image-7-11.jpg 1184w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code># R \u4ee3\u7801\uff1a\u8d8b\u52bf\u7edf\u8ba1\u53ef\u89c6\u5316\nlibrary(ggplot2)\n\n\u751f\u6210 # \u6570\u636e\uff1a\u6bcf\u4e2a\u51fa\u5c40\u4eba\u6570\u7684\u63cf\u8ff0\u548c\u4eba\u6570\nouts &lt;- data.frame(\n  situation = factor(c(&quot;1 out&quot;, &quot;2 out&quot;, &quot;3 out&quot;), levels = c(&quot;1 out&quot;, &quot;2 out&quot;, &quot;3 out&quot;))\u3001\n  count = c(1, 2, 3)\n)\n\n\u751f\u6210 # \u53ef\u89c6\u5316\u56fe\nggplot(outs, aes(x = situation, y = count, fill = situation)) +\n  geom_col(width = 0.6, show.legend = FALSE) + # \u8d4b\u4e88\u6761\u5f62\u56fe\u73b0\u4ee3\u611f\n  geom_text(aes(label = count), vjust = -0.5, size = 5, color = &quot;white&quot;, fontface = &quot;bold&quot;) + # \u5728\u67f1\u5f62\u56fe\u4e0a\u65b9\u663e\u793a\u6587\u5b57\n  scale_fill_manual(values = c(&quot;#00aaff&quot;, &quot;#ffaa00&quot;, &quot;#ff0000&quot;)) + # \u8bbe\u7f6e\u6d41\u884c\u8272\n  labs(title = &quot;Visualise outcounts&quot;, x = NULL, y = NULL) + # \u79fb\u9664\u5750\u6807\u8f74\u6807\u7b7e\n  theme_minimal() + # \u4f7f\u7528\u73b0\u4ee3\u7b80\u6d01\u7684\u4e3b\u9898\n  \u4e3b\u9898(\n    plot.title = element_text(size = 20, face = &quot;bold&quot;, hjust = 0.5), # \u8bbe\u7f6e\u6807\u9898\u7684\u5c45\u4e2d\u548c\u5927\u5c0f\n    axis.text.x = element_text(size = 15, face = &quot;bold&quot;, color = &quot;#555555&quot;) # \u8bbe\u7f6e X \u8f74\u6807\u7b7e\u7684\u5927\u5c0f\u548c\u989c\u8272\n  )<\/code><\/pre>\n\n\n\n<p><strong>\u8bf4\u660e<\/strong><br>\u4e0a\u9762\u7684\u4ee3\u7801\u662f\u4e00\u4e2a\u65b0\u6f6e\u7684\u6761\u5f62\u56fe\uff0c\u76f4\u89c2\u5730\u663e\u793a\u4e86\u8f93\u51fa\u8ba1\u6570\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u989c\u8272<\/strong> \u6211\u4eec\u4f7f\u7528\u4e86\u73b0\u4ee3\u7684\u3001\u5177\u6709\u89c6\u89c9\u51b2\u51fb\u529b\u7684\u989c\u8272\uff08\u84dd\u8272\u3001\u9ec4\u8272\u548c\u7ea2\u8272\uff09\u3002<\/li>\n\n\n\n<li><strong>\u7a81\u51fa\u663e\u793a\u6587\u672c\uff1a<\/strong> \u6211\u4eec\u5728\u6bcf\u4e2a\u6761\u5f62\u56fe\u7684\u4e0a\u65b9\u7528\u6587\u5b57\u663e\u793a\u4e86\u76f8\u5e94\u7684\u6570\u91cf\uff0c\u4f7f\u5176\u66f4\u52a0\u76f4\u89c2\u3002<\/li>\n\n\n\n<li><strong>\u56fe\u8868\u5e03\u5c40<\/strong> \u6211\u4eec\u5220\u9664\u4e86\u4e0d\u5fc5\u8981\u7684\u5750\u6807\u8f74\u548c\u6807\u7b7e\uff0c\u8c03\u6574\u4e86\u6587\u5b57\u5927\u5c0f\u548c\u6837\u5f0f\uff0c\u4f7f\u8bbe\u8ba1\u66f4\u52a0\u7b80\u6d01\u660e\u5feb\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u51fb\u7403\u548c\u63a7\u7403\u53ef\u89c6\u5316\u6f6e\u6d41\u5dee\u5f02<\/h3>\n\n\n\n<p>\u5728\u68d2\u7403\u65b9\u9762 <strong>\u7f62\u5de5 3<\/strong>\u548c <strong>\u7403 4<\/strong>\u5c06\u51b3\u5b9a\u51fb\u7403\u624b\u7684\u547d\u8fd0\u3002\u8ba9\u6211\u4eec\u7528\u73b0\u4ee3\u53ef\u89c6\u5316\u7684\u65b9\u5f0f\u6765\u7406\u89e3\u8fd9\u4e2a\u95ee\u9898\u3002<\/p>\n\n\n<style>.kb-image2733_8cd63e-9b .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-image2733_8cd63e-9b img.kb-img, .kb-image2733_8cd63e-9b .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-image2733_8cd63e-9b\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"461\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-768x461.jpg\" alt=\"\uc57c\uad6c \uaddc\uce59 - \uc2a4\ud2b8\ub77c\uc774\ud06c\uc640 \ubcfc\" class=\"kb-img wp-image-2736\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-768x461.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-300x180.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-600x360.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image.jpg 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code># R \u4ee3\u7801\uff1a\u4e09\u632f\u51fa\u5c40\u548c\u574f\u7403\u53ef\u89c6\u5316\nstrikes_balls &lt;- data.frame(\n  category = c(&quot;strikes&quot;, &quot;balls&quot;)\u3001\n  count = c(3, 4)\n)\n\nggplot(strikes_balls, aes(x = category, y = count, fill = category)) +\n  geom_col(width = 0.5, show.legend = FALSE) + # \u751f\u6210\u73b0\u4ee3\u6761\u5f62\u56fe\n  geom_text(aes(label = count), vjust = -0.5, size = 6, fontface = &quot;bold&quot;, color = &quot;white&quot;) + # \u7a81\u51fa\u663e\u793a\u6587\u672c\n  scale_fill_manual(values = c(&quot;#00cc66&quot;, &quot;#ff6666&quot;)) + # \u8bbe\u7f6e\u6d41\u884c\u8272\n  labs(title = &quot;Strike vs Ball&quot;, x = NULL, y = NULL) + # \u79fb\u9664\u8f74\u6807\u7b7e\n  theme_minimal() + # \u4f7f\u7528\u7b80\u6d01\u7684\u4e3b\u9898\n  \u4e3b\u9898(\n    plot.title = element_text(size = 20, face = &quot;bold&quot;, hjust = 0.5), # \u4e2d\u5fc3\u6807\u9898\n    axis.text.x = element_text(size = 15, face = &quot;bold&quot;, color = &quot;#333333&quot;) # \u8bbe\u7f6e X \u8f74\u6587\u672c\u6837\u5f0f\n  )<\/code><\/pre>\n\n\n\n<p><strong>\u8bf4\u660e<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u597d\u7403\u548c\u574f\u7403\u7684\u533a\u522b<\/strong> \u4e3a\u4e86\u6bd4\u8f83 3 \u597d\u7403\u548c 4 \u574f\u7403\uff0c\u6211\u4eec\u7528\u67f1\u72b6\u56fe\u5c06\u5b83\u4eec\u76f4\u89c2\u5730\u8868\u793a\u51fa\u6765\u3002<\/li>\n\n\n\n<li><strong>\u989c\u8272\u533a\u5206\uff1a<\/strong> \u4e3a\u6e05\u6670\u8d77\u89c1\uff0c\u6211\u4eec\u5c06\u51fb\u7403\u989c\u8272\u8bbe\u4e3a\u7eff\u8272\uff08#00cc66\uff09\uff0c\u5c06\u7403\u989c\u8272\u8bbe\u4e3a\u7ea2\u8272\uff08#ff6666\uff09\u3002<\/li>\n\n\n\n<li><strong>\u7a81\u51fa\u663e\u793a\u6587\u672c\uff1a<\/strong> \u6211\u4eec\u5728\u6bcf\u4e2a\u6761\u5f62\u56fe\u4e0a\u65b9\u6dfb\u52a0\u4e86\u76f8\u5e94\u7684\u6570\u5b57\uff0c\u4f7f\u89c4\u5219\u66f4\u5bb9\u6613\u7406\u89e3\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u53ef\u89c6\u5316\u5792\u4e0e\u5916\u573a\u4e4b\u95f4\u7684\u8ddd\u79bb\uff08\u4ee5\u7c73\u4e3a\u5355\u4f4d\uff09<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.koreabaseball.com\/\" target=\"_blank\" rel=\"noopener\">KBO<\/a>\u4e2d\u78b1\u57fa\u4e4b\u95f4\u7684\u8ddd\u79bb <strong>\u7ea6 90 \u82f1\u5c3a\uff0827.43 \u7c73\uff09<\/strong>.\u901a\u8fc7\u76f4\u89c2\u5730\u5c55\u793a\u8dd1\u5792\u5458\u5728\u6bcf\u4e2a\u5792\u4e4b\u95f4\u7684\u8dd1\u52a8\u8def\u5f84\u548c\u8ddd\u79bb\uff0c\u6211\u4eec\u4e0d\u96be\u770b\u51fa\u8dd1\u5792\u7684\u91cd\u8981\u6027\u3002<\/p>\n\n\n<style>.kb-image2733_21c31f-13 .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-image2733_21c31f-13 img.kb-img, .kb-image2733_21c31f-13 .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-image2733_21c31f-13\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"384\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-1-768x384.jpg\" alt=\"\uc57c\uad6c \uaddc\uce59 - \ubca0\uc774\uc2a4 \uc0ac\uc774\uc758 \uac70\ub9ac\" class=\"kb-img wp-image-2738\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-1-768x384.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-1-300x150.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-1-600x300.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-1.jpg 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code># R \u4ee3\u7801\uff1a\u53ef\u89c6\u5316\u78b1\u57fa\u4e4b\u95f4\u7684\u8ddd\u79bb\uff08\u4ee5\u7c73\u4e3a\u5355\u4f4d\uff09\nbase_distance &lt;- data.frame(\n  base = c\uff08&quot;\u672c\u5792 \u2192 \u4e00\u5792&quot;\uff0c&quot;\u4e00\u5792 \u2192 \u4e8c\u5792&quot;\uff0c&quot;\u4e8c\u5792 \u2192 \u4e09\u5792&quot;\uff0c&quot;\u4e09\u5792 \u2192 \u672c\u5792&quot;\uff09\u3001\n  \u8ddd\u79bb = c(27.43, 27.43, 27.43, 27.43, 27.43) # KBO\uff0c\u5355\u4f4d\u7c73\n)\n\nggplot(base_distance, aes(x = base, y = distance, fill = base)) +\n  geom_col(width = 0.7, show.legend = FALSE) + # \u521b\u5efa\u73b0\u4ee3\u611f\u5341\u8db3\u7684\u6761\u5f62\u56fe\n  geom_text(aes(label = sprintf(&quot;%.2f metres&quot;, distance)), vjust = -0.5, size = 5, color = &quot;black&quot;, fontface = &quot;bold&quot;) + # \u663e\u793a\u8ddd\u79bb\u503c\n  scale_fill_manual(values = c(&quot;#ffcc33&quot;, &quot;#3399ff&quot;, &quot;#33cc33&quot;, &quot;#ff6666&quot;)) + # \u5728\u78b1\u57fa\u4e4b\u95f4\u8bbe\u7f6e\u4e0d\u540c\u7684\u989c\u8272\n  labs(title = &quot;Visualise distance between bases (meters)&quot;, x = NULL, y = NULL) + # \u79fb\u9664\u8f74\u6807\u7b7e\n  theme_minimal() + # \u4f7f\u7528\u73b0\u4ee3\u4e3b\u9898\n  theme(\n    plot.title = element_text(size = 20, face = &quot;bold&quot;, hjust = 0.5), # \u7f6e\u4e2d\u5e76\u8bbe\u7f6e\u6807\u9898\u6837\u5f0f\n    axis.text.x = element_text(size = 14, face = &quot;bold&quot;, color = &quot;#666666&quot;) # \u8bbe\u7f6e X \u8f74\u6587\u672c\u6837\u5f0f\n  )<\/code><\/pre>\n\n\n\n<p><strong>\u8bf4\u660e<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u57fa\u5730\u4e4b\u95f4\u7684\u8ddd\u79bb\uff1a<\/strong> \u4ece\u672c\u5792\u5230\u4e00\u5792\u3001\u4e8c\u5792\u548c\u4e09\u5792\u7684\u6bcf\u4e00\u6bb5\u8ddd\u79bb\u7ea6\u4e3a 27.43 \u7c73\u3002 \u6211\u4eec\u7528\u8fd9\u4e9b\u8ddd\u79bb\u7684\u76f4\u89c2\u8868\u793a\u6765\u5f3a\u8c03\u8dd1\u5792\u7684\u91cd\u8981\u6027\u3002<\/li>\n\n\n\n<li><strong>\u5f69\u8272\u7f16\u7801\uff1a<\/strong> \u6211\u4eec\u4f7f\u7528\u4e86\u4e0d\u540c\u7684\u989c\u8272\uff0c\u4f7f\u6bcf\u4e2a\u57fa\u5730\u7684\u4f4d\u7f6e\u4e00\u76ee\u4e86\u7136\u3002<\/li>\n\n\n\n<li><strong>\u7a81\u51fa\u663e\u793a\u6587\u672c\uff1a<\/strong> \u5728\u6bcf\u4e2a\u6761\u5f62\u56fe\u4e0a\u65b9\uff0c\u6211\u4eec\u4ee5 \"\u7c73 \"\u4e3a\u5355\u4f4d\u663e\u793a\u4e86\u76f8\u5e94\u7684\u8ddd\u79bb\u503c\uff0c\u8ba9\u60a8\u66f4\u76f4\u89c2\u5730\u4e86\u89e3\u8ddd\u79bb\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u5f97\u5206\u5982\u4f55\u6539\u53d8\u6bd4\u8d5b\u8fdb\u7a0b\uff1a\u73b0\u4ee3\u53ef\u89c6\u5316\u5168\u5792\u6253\u548c RBI<\/h3>\n\n\n\n<p>\u68d2\u7403\u8fd0\u52a8\u4e2d\u6700\u91cd\u8981\u7684\u89c4\u5219\u4e4b\u4e00\u662f <strong>\u8ba1\u5206\u65b9\u6cd5<\/strong>\u5c24\u5176\u662f\u5168\u5792\u6253\uff0c\u662f\u51fb\u7403\u624b\u4e3a\u81ea\u5df1\u5f97\u5206\u7684\u6700\u4f73\u65b9\u5f0f\u3002 \u8ba9\u6211\u4eec\u7528\u73b0\u4ee3\u7684\u53ef\u89c6\u5316\u65b9\u6cd5\u6765\u8868\u793a\u8fd9\u4e00\u70b9\u3002<\/p>\n\n\n<style>.kb-image2733_31e252-a7 .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-image2733_31e252-a7 img.kb-img, .kb-image2733_31e252-a7 .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-image2733_31e252-a7\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"384\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-2-768x384.jpg\" alt=\"\uc57c\uad6c \uaddc\uce59 - \ub4dd\uc810 \ubc29\uc2dd\" class=\"kb-img wp-image-2739\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-2-768x384.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-2-300x150.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-2-600x300.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/image-2.jpg 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code># R \u4ee3\u7801\uff1a\u672c\u5792\u6253\u548c RBI \u53ef\u89c6\u5316\nlibrary(ggplot2)\n\nruns &lt;- data.frame(\n  category = c(&quot;home runs&quot;, &quot;RBI&quot;)\u3001\n  count = c(1, 1)\n)\n\n# \u4f7f\u7528 ggplot \u5c06\u672c\u5792\u6253\u548c RBI \u53ef\u89c6\u5316\nggplot(runs, aes(x = category, y = count, fill = category)) +\n  geom_col(width = 0.4, show.legend = FALSE) + # \u901a\u8fc7\u6dfb\u52a0\u62ec\u53f7\u521b\u5efa\u6761\u5f62\u56fe\n  geom_text(aes(label = count), vjust = -0.5, size = 6, fontface = &quot;bold&quot;, color = &quot;white&quot;) + # \u663e\u793a\u5206\u6570\n  scale_fill_manual(values = c(&quot;#ff9933&quot;, &quot;#9933ff&quot;)) + # \u533a\u5206\u672c\u5792\u6253\u548c RBI \u7684\u989c\u8272\n  labs(title = &quot;Visualise home runs and RBIs&quot;, x = NULL, y = NULL) + # \u79fb\u9664\u5750\u6807\u8f74\u6807\u7b7e\n  theme_minimal() + # \u4f7f\u7528\u7b80\u6d01\u7684\u4e3b\u9898\n  theme(\n    plot.title = element_text(size = 20, face = &quot;bold&quot;, hjust = 0.5), # \u4e2d\u5fc3\u6807\u9898\n    axis.text.x = element_text(size = 15, face = &quot;bold&quot;, color = &quot;#444444&quot;) # \u8bbe\u7f6e X \u8f74\u6587\u672c\u6837\u5f0f\n  )\n<\/code><\/pre>\n\n\n\n<p><strong>\u8bf4\u660e<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u672c\u5792\u6253\u4e0e RBI\uff1a<\/strong> \u5168\u5792\u6253\u662f\u51fb\u7403\u624b\u81ea\u5df1\u5f97\u5206\u7684\u4e00\u79cd\u65b9\u5f0f\uff0c\u800c RBI \u5219\u662f\u901a\u8fc7\u5c06\u53e6\u4e00\u540d\u8dd1\u8005\u5e26\u56de\u672c\u5792\u6765\u5f97\u5206\u7684\u4e00\u79cd\u65b9\u5f0f\u3002 \u60a8\u53ef\u4ee5\u7528\u67f1\u72b6\u56fe\u6765\u76f4\u89c2\u5730\u6bd4\u8f83\u8fd9\u4e24\u79cd\u5f97\u5206\u65b9\u5f0f\u3002<\/li>\n\n\n\n<li><strong>\u989c\u8272\u533a\u5206\uff1a<\/strong> \u672c\u5792\u6253\u7528\u6a59\u8272\uff08#ff9933\uff09\u8868\u793a\uff0c\u6253\u70b9\u7528\u7d2b\u8272\uff08#9933ff\uff09\u8868\u793a\uff0c\u4ee5\u660e\u786e\u4e24\u79cd\u65b9\u6cd5\u7684\u533a\u522b\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u7ed3\u8bba\uff1a\u7528 R \u8bed\u8a00\u53ef\u89c6\u5316\u68d2\u7403\u89c4\u5219\u66f4\u5bb9\u6613\u7406\u89e3<\/h3>\n\n\n\n<p>\u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u4eec\u4f7f\u7528 R \u8bed\u8a00\u4ee5\u73b0\u4ee3\u548c\u65f6\u5c1a\u7684\u53ef\u89c6\u5316\u65b9\u5f0f\u89e3\u91ca\u4e86\u68d2\u7403\u89c4\u5219\u3002\u901a\u8fc7\u53ef\u89c6\u5316\u51fa\u5c40\u6570\u3001\u4e09\u632f\u51fa\u5c40\u548c\u574f\u7403\u3001\u5792\u95f4\u8ddd\u79bb\u4ee5\u53ca\u5982\u4f55\u5f97\u5206\uff0c\u6211\u5f88\u5bb9\u6613\u5c31\u7406\u89e3\u4e86\u89c4\u5219\u3002\u7528 R \u5b66\u4e60\u68d2\u7403\u89c4\u5219\u8bc1\u660e\uff0c\u5373\u4f7f\u662f\u590d\u6742\u7684\u89c4\u5219\u4e5f\u53ef\u4ee5\u7528\u53ef\u89c6\u5316\u548c\u76f4\u89c2\u7684\u65b9\u5f0f\u6765\u5904\u7406\u3002 \u66f4\u591a\u5185\u5bb9\u656c\u8bf7\u671f\u5f85 <a href=\"https:\/\/secondlife.lol\/zh\/baseball-field-positions-r-visualization\/\" data-type=\"link\" data-id=\"https:\/\/secondlife.lol\/baseball-field-positions-r-visualization\/\">\u7528 R \u5bf9\u4e0d\u540c\u89c4\u5219\u8fdb\u884c\u53ef\u89c6\u5316<\/a>\u83b7\u53d6\u66f4\u591a\u68d2\u7403\u4e50\u8da3\uff01<\/p>","protected":false},"excerpt":{"rendered":"<p>\u5982\u679c\u60a8\u8ba4\u4e3a\u68d2\u7403\u89c4\u5219\u65e2\u590d\u6742\u53c8\u56f0\u96be\uff0c\u90a3\u4e48\u60a8\u4e00\u5b9a\u60f3\u7528 R \u6765...<\/p>","protected":false},"author":3,"featured_media":2742,"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,308,164,307,309,306],"class_list":["post-2733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-r-coding","tag-kbo","tag-r-","tag-r--","tag-164","tag-307","tag-309","tag-306"],"taxonomy_info":{"category":[{"value":6,"label":"\uc54c(R)"}],"post_tag":[{"value":305,"label":"KBO"},{"value":300,"label":"R \uc2dc\uac01\ud654"},{"value":308,"label":"R\ub85c \uc57c\uad6c \ubc30\uc6b0\uae30"},{"value":164,"label":"\ub370\uc774\ud130 \uc2dc\uac01\ud654"},{"value":307,"label":"\uc57c\uad6c \uaddc\uce59"},{"value":309,"label":"\uc57c\uad6c \uaddc\uce59 \uc124\uba85"},{"value":306,"label":"\uc57c\uad6c \ub370\uc774\ud130 \ubd84\uc11d"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2024\/10\/\uc57c\uad6c-\uaddc\uce59-\ud3ec\uc2a4\ud2b8-\uc378\ub124\uc77c-600x600.webp",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":308,"name":"R\ub85c \uc57c\uad6c \ubc30\uc6b0\uae30","slug":"r%eb%a1%9c-%ec%95%bc%ea%b5%ac-%eb%b0%b0%ec%9a%b0%ea%b8%b0","term_group":0,"term_taxonomy_id":308,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":164,"name":"\ub370\uc774\ud130 \uc2dc\uac01\ud654","slug":"%eb%8d%b0%ec%9d%b4%ed%84%b0-%ec%8b%9c%ea%b0%81%ed%99%94","term_group":0,"term_taxonomy_id":164,"taxonomy":"post_tag","description":"","parent":0,"count":52,"filter":"raw"},{"term_id":307,"name":"\uc57c\uad6c \uaddc\uce59","slug":"%ec%95%bc%ea%b5%ac-%ea%b7%9c%ec%b9%99","term_group":0,"term_taxonomy_id":307,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":309,"name":"\uc57c\uad6c \uaddc\uce59 \uc124\uba85","slug":"%ec%95%bc%ea%b5%ac-%ea%b7%9c%ec%b9%99-%ec%84%a4%eb%aa%85","term_group":0,"term_taxonomy_id":309,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":306,"name":"\uc57c\uad6c \ub370\uc774\ud130 \ubd84\uc11d","slug":"%ec%95%bc%ea%b5%ac-%eb%8d%b0%ec%9d%b4%ed%84%b0-%eb%b6%84%ec%84%9d","term_group":0,"term_taxonomy_id":306,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/2733","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=2733"}],"version-history":[{"count":8,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/2733\/revisions"}],"predecessor-version":[{"id":2750,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/2733\/revisions\/2750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media\/2742"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media?parent=2733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/categories?post=2733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/tags?post=2733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}