首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中倍体中的floating.pie

R中倍体中的floating.pie
EN

Stack Overflow用户
提问于 2016-10-20 19:00:27
回答 1查看 828关注 0票数 1

我使用R。我的最终目标是在县一级得到明尼苏达州的地理信息系统地图,在每个县都有一个饼形图,代表初级、中级和三级就业人口的比例。

我有一份载有就业统计数据的数据。每一行都是一个县,列是初级、二级和三级部门的就业。前十排看上去像这样。

代码语言:javascript
运行
复制
      [,1]   [,2]   [,3]
 [1,]    0     94   2208
 [2,]    0  45568  65678
 [3,]    0   3124   6262
 [4,]   48   3908  11278
 [5,]    0   6949   9779
 [6,]    0    283    992
 [7,]    0   7797  27130
 [8,]   15   4471   6710
 [9,]   51   1973   5768
[10,]   44  14188  23040

为了绘制饼图,我使用了floating.pie包的plotrix函数,并对所有的县进行迭代。(mn_county是我的GIS,但你不必为此费心。)

代码语言:javascript
运行
复制
floating.pie(coordinates(mn_county)[s, ][1], coordinates(mn_county)[s, ][2], c(pri, sec,tert), radius = rad
           , col = c(rgb(255, 0, 0, max = 255, alpha = 125, names = "red50"), rgb(0, 255, 0, max = 255, alpha = 125, names = "green50"), rgb(0, 0, 255, max = 255, alpha = 125, names = "blue50")))

对于我的饼图,我希望初级就业是红色的,二级就业是绿色的,高等教育就业是蓝色的。问题是,当初级就业=0时,R将二级就业等同于红色就业,而第三产业就业为绿色就业。我怎样才能防止这种情况发生呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 19:15:09

原则上,您可以自己黑floating.pie函数(零被排除,因为它们破坏了一些内部计算;应该可以解决这个问题),或者向包维护人员发送请求.

一种简单的方法是为所有类别添加一个小值(小到你永远不会注意到视觉上的差异);或者,您可以只使用min(pri,eps) .

代码语言:javascript
运行
复制
dat <- data.frame(pri=c(0,10,20),
                  sec=c(10,20,30),
                  tert=c(10,10,10))
n <- 3
library(plotrix)
plot(c(0,n+1),c(0,n+1),axes=FALSE,ann=FALSE,type="n")
eps <- 0.001
for (i in 1:n) {
    with(dat[i,],floating.pie(i,i,c(pri+eps,sec+eps,tert+eps),
                              col=c("red","green","blue"),radius=0.5))
}

其他未经请求的咨询意见:

  • 红色/绿色/蓝色并不是最好的颜色表示(主要的红/绿是无法区分的二色垫),你可以看看RColorBrewer包.
  • 你也许想看看this answer ..。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40162506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档