【问题标题】:Centered Net stacked bar plot with ggplot2 from summary data来自汇总数据的 ggplot2 居中的网络堆积条形图
【发布时间】:2017-05-17 13:14:54
【问题描述】:

我有一个问卷调查项目的回答汇总统计数据。此外,汇总统计数据是由几个群体(在这种情况下是政党)组成的。我想创建一个以中性类别为中心的净堆积条形图,这是数据框中响应变量的 3 级(“既不同意也不同意”)。

特别是,我对回复的可用摘要如下所示。

  Group  Strongly Agree  Agree  Neither disagree or agree  Disagree  Strongly disagree 
  NV.A     35.1           43.8            3.69                  10.9   7.24
  OpenVLD  37.8           19.8           11.30                  17.9  13.30
  SP.A     24.5           11.1           23.50                  19.0  22.10
  Groen    18.2            5.7           35.70                  13.2  27.20
  CD&V     29.2           17.9           12.90                  20.4  19.80

只需将所有内容放在一个数据框中即可。

plot.data<-data.frame(
response =     c(rep("Strongly disagree",5),rep("Disagree",5),
               rep("Neither agree nor disagree",5), 
               rep("Agree",5),rep("Strongly agree",5)),

group = c(rep(c("SP.A","Groen","CD&V","OpenVLD","N-VA"),5)),

percentage = c(23.5,35.7,12.9,11.3,3.69,22.1,27.2,19.8,13.2,7.24,19.0,
13.2,20.4,17.9,10.9,24.5,18.2,29.2,37.8,35.1,11.1, 5.70,17.9,19.8,43.8)
)

我目前的解决方案是简单地创建一个没有居中的堆叠条形图。 有没有办法实现堆积条形图居中?

library(ggplot2)

ggplot(plot.data, aes(x=group, y=percentage, fill=response)) + 
geom_bar(stat="identity") +
scale_fill_manual(values=c('#ca0020','#92c5de','#0571b0','#f7f7f7','#f4a582'))+
coord_flip()+
theme_minimal()

【问题讨论】:

  • 我见过没有中间类别的示例,例如here,在 ggplot2 中编写代码非常简单。您可能还对likert 包感兴趣,请参阅here
  • 我无法从 likert 获得示例来为我工作,但描述非常有用 here

标签: r ggplot2


【解决方案1】:

我绘制净堆叠条形图的解决方案是首先将不同的响应分散到单独的列中,然后使用 likert 包中的 plot 函数对其进行绘制。

library(likert)
library(tidyr)   
plot.wide<-plot.data.politic%>% spread(response, percentage)
plt.wide.lk<-likert(summary=rename(plot.wide,"Item"=group))
plot(plt.wide.lk)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多