首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggforce::geom_arc_bar中线的颜色

ggforce::geom_arc_bar中线的颜色
EN

Stack Overflow用户
提问于 2019-05-22 04:43:49
回答 2查看 684关注 0票数 1

可能是一个简单的问题。

有没有办法消除ggforce::geom_arc_bar饼图中的边界线?

代码语言:javascript
复制
pie <- data.frame(
    state = c('eaten', 'eaten but said you didn\'t', 'cat took it', 
              'for tonight', 'will decompose slowly'),
    focus = c(0.2, 0, 0, 0, 0),
    start = c(0, 1, 2, 3, 4),
    end = c(1, 2, 3, 4, 2*pi),
    amount = c(4,3, 1, 1.5, 6),
    stringsAsFactors = FALSE
)
ggplot(pie) + 
    geom_arc_bar(aes(x0 = 0, y0 = 0, r0 = 0, r = 1, amount = amount, 
                     fill = state, explode = focus), stat = 'pie') + 
    scale_fill_brewer('', palette = 'Set1') +
    coord_fixed()

例如,在上面的绘图中,要么消除黑色边框线,要么使其颜色与填充颜色相同?

另一个问题是,是否有可能仅从饼的外围消除边界线?所以只保留切片的分界?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-22 04:50:25

ggplot一般使用两个参数表示颜色:

代码语言:javascript
复制
col = 

代码语言:javascript
复制
fill = 

您指定了填充(内部),但没有处理列(轮廓)。

下面的代码应该可以用,在这里我指定了col=NA

代码语言:javascript
复制
ggplot(pie) + 
  geom_arc_bar(aes(x0 = 0, y0 = 0, r0 = 0, r = 1, amount = amount, 
                   fill = state, explode = focus), col=NA,stat = 'pie') + 
  scale_fill_brewer('', palette = 'Set1') +
  coord_fixed()

编辑:所以为了回答第二个问题--我真的不知道这是否可能(我对ggforce不是太熟悉),鉴于此,我在这个非常“老套”的问题解决方案之前请求原谅。但我觉得最好是提供一些东西给其他人去改进。

解释:保留原始轮廓,然后使用geom_arc0函数将新轮廓绘制为与每个线段相同的颜色。

代码语言:javascript
复制
geom_arc0(aes(x0 = 0, y0 = 0, r = 1, start = start, end = end, 
              colour = factor(state)), data = pie, ncp = 50)

在上下文中:

代码语言:javascript
复制
ggplot(pie) + 
  geom_arc_bar(aes(x0 = 0, y0 = 0, r0 = 0, r = 1, amount = amount, 
                   fill = state, explode = focus), col="black",stat = 'pie') + 
  geom_arc0(aes(x0 = 0, y0 = 0, r = 1, start = start, end = end, 
                colour = factor(state)), data = pie, ncp = 50)
  scale_fill_brewer('', palette = 'Set1') +
  coord_fixed()

它可能看起来有点不可靠-如果你增加ncp参数,它会给轮廓增加更多的点(从而更接近一个完美的圆)-我被限制在ncp=2000。

再一次道歉,它是如此之多。

票数 2
EN

Stack Overflow用户

发布于 2019-05-22 04:46:37

您可以在geom_arc_bar中添加color = "transparent"color = NA

代码

代码语言:javascript
复制
library(ggforce)
ggplot(pie) + 
  geom_arc_bar(aes(x0 = 0, y0 = 0, r0 = 0, r = 1, amount = amount, 
                   fill = state, explode = focus), stat = 'pie',
                   color = "transparent") + 
  scale_fill_brewer('', palette = 'Set1') +
  coord_fixed()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56246088

复制
相关文章

相似问题

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