我在下面有一個餅圖,我想創建更具可讀性的輪子。提前謝謝了。
library(ggplot2)
library(dplyr)
# Create Data
data <- data.frame(
group=c("IMAGINE HERE I HAVE A LONG SURVEY QUESTIONS",
"AND THE TEXT IS IN DIFFERENT LENGTH",
"WANNA PLOT THESE IN ORDER",
"WITH 45 DEGREE ANGLE",
"PIE CAN BE PROPORTIONAL WITH THE TEXT LENGTH" ),
value=c(13,7,9,21,2)
)
# Compute the position of labels
data <- data %>%
arrange(desc(group)) %>%
mutate(prop = value / sum(data$value) *100) %>%
mutate(ypos = cumsum(prop)- 0.5*prop )
# Basic piechart
ggplot(data, aes(x="", y=prop, fill=group))
geom_bar(stat="identity", width=1, color="white")
coord_polar("y", start=0)
theme_void()
theme(legend.position="none")
geom_text(aes(y = ypos, label = group), color = "white", size=6)
scale_fill_brewer(palette="Set1")
uj5u.com熱心網友回復:
str_wrap如果您使用以下方法將它們包裹起來并彎曲它們,則您有更好的機會適合標簽geomtextpath:
# Compute the position of labels
data <- data %>%
arrange(desc(group)) %>%
mutate(prop = value / sum(data$value) *100) %>%
mutate(ypos = cumsum(prop)- 0.5*prop,
group = stringr::str_wrap(group, 20))
library(geomtextpath)
# Basic piechart
ggplot(data, aes(x=1, y=prop, fill=group))
geom_bar(stat="identity", width=1, color="white")
coord_polar("y", start=0)
theme_void()
theme(legend.position="none")
geom_textpath(aes(x = 1.3, y = ypos, label = group,
vjust = group), color = "black", size = 6,
angle = 90)
scale_fill_brewer(palette="Set1")
scale_x_continuous(limits = c(0.5, 2))
scale_vjust_manual(values = c(2, 1.8, 2.2, 2, 4))

uj5u.com熱心網友回復:
也許將group文本換行并將其繪制在多行文本中是解決問題的一種方法。
首先strwrap打破 中的每個值group,然后paste在斷點處插入換行符。
并且圖形設備的尺寸變大了,雖然它沒有用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482168.html
上一篇:SwiftUI-我正在嘗試更改背景。它在功能buttonPressed()下給了我一個錯誤
下一篇:改變ggplot中的y軸比例
