簡體   English   中英

ggplot R中的圓形條形圖

[英]Circular bar chart in ggplot R

我正在嘗試為簡單數據創建圓形條形圖。 R Graph Gallery有一個很好的參考: https : //www.r-graph-gallery.com/296-add-labels-to-circular-barplot.html

我是我的數據幀結構(來自dput(data) ):

structure(list(month = c("Jan", "Feb", "Mar", "Apr", "Dec"), 
    n = c(333, 557, 98, 545, 654), id = 1:5), class = "data.frame", row.names = c(NA, 
-5L))

我無法正確躲避欄桿。 我想躲閃使用另一個稱為分類變量酒吧:paystatus,它假定三個值:准時

謝謝你。

就像是

dataframe %>%
   ggplot(aes(x = id, y = n) + 
   geom_bar() +
   coord_polar()

但不知道你到底要做什么......

歡迎來到 Stack Overflow Surbhi Mishra。

我已嘗試從您與我們共享的R Graph Gallery中復制示例。 但是下次嘗試詳細說明它。 它可以幫助我們幫助您... :)

讓我切入正題。 我無法使用paystatus,因為您尚未共享數據,但我認為您可能想要這樣的東西:

# setup environment
library(tidyverse)
# create dataframe
data = data.frame(
  month = c('Jan', 'Feb', 'Mar', 'Apr', 'Dec'),
  n = c(333, 557, 98, 545, 654),
  id = 1:5
)
# define labels
nrows = nrow(data)
angle =  90 - 360*(data$id - 0.5)/nrows
label = data
label$hjust = ifelse(angle < -90, 1, 0)
label$angle = ifelse(angle < -90, angle + 180, angle)
# plot
ggplot(data, aes(x = as.factor(id), y = n)) +
  geom_bar(stat = "identity", fill = alpha("skyblue", 0.7)) +
  ylim(-200, 700) +
  theme_minimal() +
  theme(
    axis.text = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank(),
    plot.margin = unit(rep(-1, 4), "cm")) +
  coord_polar(start = 0) +
  geom_text(data = label, aes(x = id, y = n + 10, label = month, hjust = hjust),
            color = "black", fontface = "bold", alpha = 0.6, size = 4,
            angle = label$angle, inherit.aes = FALSE)

這是輸出:

在此處輸入圖片說明

請讓我們知道這是否是您正在尋找的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM