【问题标题】:ggplot2 using facet_grid to generate Pie charts for each rowggplot2 使用 facet_grid 为每一行生成饼图
【发布时间】:2013-10-10 04:11:42
【问题描述】:

我正在尝试为此 data.frame 生成饼图,其中每一行代表站点的唯一标识符、字段的错误计数和字段数。我将如何最好地构建 ggplot 命令以生成饼图,其中错误是每个站点字段的一小部分? 目前,我的代码如下所示:

ggplot(error_indicator,aes(x = Fields,y=Errors)) 
+ facet_grid(~Hospital) 
+ geom_bar(width = 1,stat="identity", position="fill") 
+ coord_polar(theta="y")

数据框如下所示:

但我的 ggplot 代码的结果如下所示:

如何获取饼图以将错误显示为每家医院和每家医院使用自己的行的字段比率?

【问题讨论】:

    标签: r charts ggplot2 shiny shiny-server


    【解决方案1】:

    首先,饼图并不是显示数据的最佳方式!

    但无论如何,这是一种解决方案。这里最重要的部分是 scale_y_continuous() 设置从 0 到 1 的限制,然后使用库 scales 中的 percent_format() 将它们转换为百分比。

    library(ggplot2)
    library(scales)
    ggplot(df,aes(x=1,y=Errors/Fields))+geom_bar(stat="identity")+
      facet_grid(~Hospital)+
      coord_polar(theta="y")+
      scale_y_continuous(labels = percent_format(),limits=c(0,1),
                  breaks=c(0.25,0.5,0.75,1))+
      theme(axis.title.y=element_blank(),
            axis.text.y=element_blank(),
            axis.ticks.y=element_blank())
    

    【讨论】:

    • 您希望我使用哪些图表,我将如何以类似的多面方式实现它?任何建议将不胜感激。
    • 也许是个人喜好问题,但我会发现使用非分面图比较不同医院的错误率更容易:ggplot(df, aes(x = Hospital, y = Errors/Fields)) + geom_bar(stat="identity") + scale_y_continuous(labels = percent_format(),limits = c(0, 1), breaks=c(0.25, 0.5, 0.75, 1))。并向@Didzis Elferts +1 以获得一个很好的答案,在那里我了解到percent_format
    • 我不断收到错误错误:使用我的数据集将离散值提供给连续规模。我不明白为什么我不断收到此错误。
    • 使用函数 dput(df) 将您的数据包含在问题中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2016-10-16
    • 2017-01-26
    • 2017-03-24
    相关资源
    最近更新 更多