我的梦想是成为你的未来 發表於 2022-2-16 14:21:47

R语言数据可视化绘制Circular bar plot实现环形柱状图

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>Step1. 绘图数据的准备</li><li>Step2. 绘图数据的读取</li><li>Step3.绘图所需package的调用</li><li>Step4.绘图</li><li>环形柱状图</li><li>排好序的环形柱状图</li><li>调整颜色</li><li>注意事项</li></ul></div><p>不知不觉,距离小仙上次发文已经过去五个多月了。R语言作图系列的更新频率跟理想中的一月一次差别有点忒大了,不得不让小仙陷入深深的反思,对于时间的规划也有了一些新的感悟。<br />不知道大家有没有跟我一样的感受啊,举些例子:<br />放学、下班或者放假之后先把学习任务扔在一边,心想着,我先玩会游戏,等会玩够了再做;<br />网上看到一篇干货满满的文章,先点收藏,心想着,等我有空的时候再仔细看看;<br />听说身边的朋友利用空余时间做了什么了不起的事情,心想着,等我有空了,我也可以试一试;<br />&hellip;<br />这样的例子数不胜数了,哈哈,小仙常想的就是,一个月有四个周末,这周末先休息,等下个周末再写文章&hellip;<br />就这样,周末要么觉得自己前一段太辛苦了要放松一下,要么在赶紧急的deadline,反倒是重要但是不那么紧急,也没有人给设立deadline的发文大事业被耽误了,哈哈。<br />现在小仙就觉得,等我有空了 = 没有空, 很多时候,一些可做可不做的事情,等着等着就不做了。如果真的想做某件事情,要么立刻马上行动起来,要么就安排好具体的时间(某一天的几点到几点之间),并且把有可能发生冲突的事情也安排好。<br />可惜目前小仙也只是能意识到这个问题,还不能合理安排好自己的时间,现在还是在摸索阶段&hellip;</p>
<p>言归正传,这次给大家分享的图,是这个样子的,姑且称之为环形柱状图</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470251.png" /></p>
<p class="maodian"></p><h2>Step1. 绘图数据的准备</h2>
<p>首先还是要把你想要绘图的数据调整成R语言可以识别的格式excel中保存成csv格式。<br />数据的格式如下图:</p>
<p style="text-align:center"><img alt="作图数据" src="https://img.jbzj.com/file_images/article/202202/2022021611470252.png" /></p>
<p class="maodian"></p><h2>Step2. 绘图数据的读取</h2>
<div class="jb51code"><pre class="brush:ruby;">data &lt;- read.csv(“your file path”, header = T)
</pre></div>
<p class="maodian"></p><h2>Step3.绘图所需package的调用</h2>
<div class="jb51code"><pre class="brush:ruby;">library(ggplot2)
</pre></div>
<p class="maodian"></p><h2>Step4.绘图</h2>
<p>先画出普通的柱状图</p>
<div class="jb51code"><pre class="brush:ruby;">p1 &lt;- ggplot(data, aes(x = 书名,y = 销量, fill = 书名)) +
geom_bar(stat = "identity", width = 0.5) +
theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) +
xlab("销量排行前十") + theme(legend.position = "none") +
scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0", "200000", "400000", "600000"))
p1
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470253.png" /></p>
<p class="maodian"></p><h2>环形柱状图</h2>
<div class="jb51code"><pre class="brush:ruby;">p2 &lt;- ggplot (data, aes(x = 书名,y = 销量, fill = 书名)) +
geom_bar(stat = "identity", width = 0.5) +
theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) +
xlab("销量排行前十") + theme(legend.position = "none") +
scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0", "200000", "400000", "600000")) +
coord_polar(start = 7)
p2
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470254.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470255.png" /></p>
<p class="maodian"></p><h2>排好序的环形柱状图</h2>
<div class="jb51code"><pre class="brush:ruby;">data$书名 &lt;- factor(data$书名)
data$书名 &lt;- reorder(data$书名, -data$销量)
p3 &lt;- ggplot(data, aes(x = 书名,y = 销量, fill = 书名)) +
geom_bar(stat = "identity", width = 0.5) +
theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) +
xlab("销量排行前十") + theme(legend.position = "none")+
scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0","200000","400000","600000")) +coord_polar(start = 7)
p3
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470256.png" /></p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202202/2022021611470357.png" /></p>
<p class="maodian"></p><h2>调整颜色</h2>
<div class="jb51code"><pre class="brush:ruby;">p4 &lt;- ggplot(data, aes(x =书名,y = 销量,fill = 分组)) +
   geom_bar(stat = "identity", width = 0.5) +
   theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9))+
   xlab("销量排行前十") + theme(legend.position = "none")+
   scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0","200000","400000","600000")) +
   coord_polar(start = 7) +
   scale_fill_manual(values = c(第一梯队="#E41A1C",第二梯队="#377eb8",第三梯队="gray"))
p4
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470358.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470359.png" /></p>
<p class="maodian"></p><h2>注意事项</h2>
<p>在调整颜色的时候有个小插曲,一开始用的语句是</p>
<div class="jb51code"><pre class="brush:ruby;">scale_fill_manual(values = c("#E41A1C", "#377eb8", "gray"))
</pre></div>
<p>但是得到的图是这样的</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470360.png" /></p>
<p>并不是&quot;第一梯队&quot;给到了红色<br />debug的时候发现,data$分组 这一列的数据是这样的,怪不得给不到想要的颜色</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202202/2022021611470361.png" /></p>
<p>把scale_fill_manual()的语句调整一下就可以啦</p>
<div class="jb51code"><pre class="brush:ruby;">scale_fill_manual(values = c(第一梯队="#E41A1C",第二梯队="#377eb8",第三梯队="gray"))
</pre></div>
<p>以上就是R语言数据可视化绘制Circular&nbsp;bar&nbsp;plot实现环形柱状图的详细内容,更多关于R语言绘制Circular&nbsp;bar&nbsp;plot环形柱状图的资料请关注琼殿技术社区其它相关文章!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>R语言作图之直方图histogram绘制过程详解</li><li>R语言作图之density plot(密度图)的制作步骤</li><li>R语言利用plot()函数画图的基本用法</li><li>利用R语言绘制时间序列图的操作</li><li>R语言绘制Vonoroi图的完整代码</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: R语言数据可视化绘制Circular bar plot实现环形柱状图