r - 牛眼图

标签 r ggplot2 plot

我的一位同事需要绘制 101 个牛眼图。这不是她的主意。我没有让她的奴隶离开 Excel 或上帝知道是什么制作了这些东西,而是提出用 R 来做它们;在 ggplot2 中将条形图映射到极坐标以制作靶心是轻而易举的事。

但是,我遇到了一个问题:数据已经聚合,因此 Hadley 的示例 here不适合我。我可以将计数扩展为一个因子来执行此操作,但我觉得有更好的方法 - 告诉 geom_bar 如何读取数据的某种方法。

数据如下所示:

    Zoo Animals Bears Polar Bears
1 Omaha      50    10           3

我将为每个动物园制作一个地 block - 但那部分我可以管理。

这是它的dput:

structure(list(Zoo = "Omaha", Animals = "50", Bears = "10", `Polar Bears` = "3"), .Names = c("Zoo", 
"Animals", "Bears", "Polar Bears"), row.names = c(NA, -1L), class = "data.frame")

注意:重要的是 Animals >= Bears >= Polar Bears。另外,她不在城里,所以我不能只从她那里得到原始数据(无论如何,如果有一个大文件的话)。

最佳答案

虽然我们正在等待更好的答案,但我认为我应该发布您提到的(次优)解决方案。 dat 是您问题中包含的结构。

d <- data.frame(animal=factor(sapply(list(dat[2:length(dat)]),
                function(x) rep(names(x),x))))
cxc <- ggplot(d, aes(x = animal)) +  geom_bar(width = 1, colour = "black") 
cxc + coord_polar() 

关于r - 牛眼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1411599/

相关文章:

从 R 中使用 ggplot2 制作的多个箱线图中完全删除异常值并以扩展格式显示箱线图

使用 ggplot2 从 geom_rect 中删除边框

r - Rstudio中的表示-使图像填充整个屏幕

r - R strucchange中断点时间序列模型的模型比较

r - ggplot2:从图中删除未使用的因子水平组合的方面 (facet_grid)

将 x Axis 替换为工作日标签

python - 绘制多轴对象数组

python - 如何在 matplotlib 中将次轴图安排在主轴图下方?

r - 通过 data.table 或 dplyr 中的分组列选择每个数字列的最大绝对值

r - tidyverse 汇总多列但将结果显示为行