嗨,我真的用谷歌搜索了很多,没有任何快乐。如果存在网站,将很高兴获得对网站的引用。我很难理解 Hadley documentation on polar coordinates而且我知道饼图/ donut chart 本质上被认为是邪恶的。
也就是说,我想做的是
alpha=0.5
左右),显示第二个(可比较的)变量。 为什么?我正在寻找显示财务信息。第一个环是成本(分解),第二个是总收入。然后的想法是添加
+ facet=period
为每个审查期间显示收入和支出的趋势以及两者的增长。任何想法将不胜感激
注意:如果尝试使用 MWE,则完全任意
donut_data=iris[,2:4]
revenue_data=iris[,1]
facet=iris$Species
那将类似于我正在尝试做的事情..谢谢
最佳答案
我没有你的问题的完整答案,但我可以提供一些代码,可以帮助你开始使用 ggplot2
制作环形图.
library(ggplot2)
# Create test data.
dat = data.frame(count=c(10, 60, 30), category=c("A", "B", "C"))
# Add addition columns, needed for drawing with geom_rect.
dat$fraction = dat$count / sum(dat$count)
dat = dat[order(dat$fraction), ]
dat$ymax = cumsum(dat$fraction)
dat$ymin = c(0, head(dat$ymax, n=-1))
p1 = ggplot(dat, aes(fill=category, ymax=ymax, ymin=ymin, xmax=4, xmin=3)) +
geom_rect() +
coord_polar(theta="y") +
xlim(c(0, 4)) +
labs(title="Basic ring plot")
p2 = ggplot(dat, aes(fill=category, ymax=ymax, ymin=ymin, xmax=4, xmin=3)) +
geom_rect(colour="grey30") +
coord_polar(theta="y") +
xlim(c(0, 4)) +
theme_bw() +
theme(panel.grid=element_blank()) +
theme(axis.text=element_blank()) +
theme(axis.ticks=element_blank()) +
labs(title="Customized ring plot")
library(gridExtra)
png("ring_plots_1.png", height=4, width=8, units="in", res=120)
grid.arrange(p1, p2, nrow=1)
dev.off()
感想:
iris
中的一些列dataset (一个好的开始),但我无法看到如何使用该数据来制作环形图。例如,您链接到的环形图显示了多个类别的比例,但 iris[, 2:4]
也不是 iris[, 1]
是分类的。 geom_rect(data=dat2, xmax=3, xmin=2, aes(ymax=ymax, ymin=ymin))
period
的列, 你可以使用 facet_wrap(~ period)
用于刻面。 ggplot2
最容易的是,您会希望您的数据为“长格式”; melt()
来自 reshape2
包可能对转换数据有用。 ggplot(dat, aes(x=category, y=count, fill=category)) +
geom_bar(stat="identity")
关于r - ggplot donut chart ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615562/