简体   繁体   English

带有线条的 geom_bar + coord_polar 标签

[英]geom_bar + coord_polar labels with lines

I am trying to label the series of concentric circles below with the labels from C in the data frame我正在尝试使用数据框中C中的标签 label 下面的一系列同心圆

I am aware that I could use something like geom_text_repel but I cannot seem to get it to work.我知道我可以使用类似geom_text_repel的东西,但我似乎无法让它工作。

In addition, I cannot seem to get rid of the tick marks on the upper left.此外,我似乎无法摆脱左上角的刻度线。

在此处输入图像描述

df <- data.frame(C=c(rep("The macro-environment",4),rep("The industry",4),rep("Competitors",4),rep("The organisation",4)))

ggplot(df, aes(factor(1), fill = C)) +
  geom_bar(width = 1, colour = NA, show.legend = FALSE, alpha = .8) +    
  coord_polar() +
    labs(
        x = "",
        y = ""
    ) +
    scale_fill_manual(values = c("#289045", "#beddc7", "#d4dfe9", "#286291")) +
    theme(axis.ticks.x = element_blank(),
        axis.ticks.y = element_blank()) +
    theme_minimal()

A second option would be to add your labels as curved labels using the geomtextpath package:第二种选择是使用geomtextpath package 将标签添加为弯曲标签:

library(ggplot2)
library(geomtextpath)

ggplot(df, aes(factor(1), fill = C)) +
  geom_bar(width = 1, colour = NA, show.legend = FALSE, alpha = .8) +
  geom_textpath(aes(x = .5, label = C, group = C),
    stat = "count", position = position_stack(vjust = .5),
    vjust = 1
  ) +
  coord_polar() +
  labs(
    x = "",
    y = ""
  ) +
  scale_fill_manual(values = c("#289045", "#beddc7", "#d4dfe9", "#286291")) +
  theme_void()

在此处输入图像描述

You could do:你可以这样做:

ggplot(df, aes(factor(1), fill = C)) +
  geom_bar(width = 1, colour = NA, show.legend = FALSE, alpha = .8) + 
  geom_text(stat = 'count', aes(label = C), size = 6,
            position = position_stack(vjust = 0.5),
            vjust = c(0.5, 0.5, 0.5, 2)) +
  coord_polar(start = pi) +
  labs(x = NULL, y = NULL ) +
  scale_fill_manual(values = c("#289045", "#beddc7", "#d4dfe9", "#286291")) +
  theme_void()

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM