【问题标题】:Stacked bar chart with real values in y-axis using ggplot in r使用 r 中的 ggplot 在 y 轴上具有实际值的堆积条形图
【发布时间】:2023-03-03 15:20:02
【问题描述】:

我尝试过堆叠条形图并希望获得实际值,而不是将条形一个放在另一个上。例如,如果空载时的交流能量消耗为 193,空载时的非交流能量消耗为 175,那么我希望有一个显示相同值的图,而不是在 y 轴值达到 350 左右时将一个堆放在另一个上.我不想要这种类型的图表:

样本数据在这里:

a<-tribble(
~"para",       ~"energy", ~"type",

  "Empty_Load",    175, "NoAC",   
 "Half_Load"  ,   184, "NoAC",     
 "Full_Load"   ,  191, "NoAC",    
 "Empty_Load"   , 193, "AC",       
 "Half_Load"     ,206, "AC",       
 "Full_Load"     ,211, "AC"   
)

这就是我尝试过的:

ggplot(a,aes(x=para,y=energy))+
  geom_bar(stat="identity", aes(fill=type))

【问题讨论】:

    标签: r ggplot2 geom-bar stacked-chart


    【解决方案1】:

    这样就可以了:

    ggplot(a,aes(x=para,y=energy))+
      geom_bar(stat="identity", aes(fill=type), position ="dodge") #add position = "dodge" to place bars next to each other
    

    或者如果你想要一个堆叠图表,其中的值显示在图表中:

    ggplot(a,aes(x=para,y=energy))+
      geom_bar(stat="identity", aes(fill=type)) + #add position = "dodge" to place bars next to each other
      geom_text(aes(label = energy), position = position_stack(vjust = 0.5))
    

    【讨论】:

    • 感谢@dominik,但是是否可以在没有闪避位置但具有真实值的情况下堆叠条形图?
    • “真正的价值观”是什么意思?
    • 您可以将值添加到图中(请参阅更新答案中的第二个选项)
    • 例如,ac 的实际值在空载时为 193,但在图中它添加了非 ac (175)。我不想要一个添加的,而是我想要一个图,其中 ac 和非 ac 相互叠加,以便将实际值显示为 175 和 193
    • 不应该这样做,因为 y 轴失去了它的意义并且情节变得难以理解。我认为实现接近您想要的结果的最佳方法是直接将值添加到图中,就像我在第二个示例中所做的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多