r - ggplot中带有单列的堆叠条形图?
问题描述
我想创建一个堆叠的条形图,但我很难让我正确。我想在蓝色条的顶部(即前面)添加绿色和红色条。蓝色条代表一些总数;因此,红色和绿色条只是该值的一部分。有什么想法我该怎么做?
这是我的代码:
sse <- c(3243.784, 2527.5, 716.3)
model <- c('sst', 'ssm', 'ssr')
bar <- tibble(sse, model)
ggplot(bar, aes(x = model, y = sse, fill = model)) +
geom_col()
解决方案
由于蓝色条表示总值(即红色和绿色条的总和),我认为您可以只显示红色和绿色,同时在堆积条形图上显示数据值。这样就不会混淆,可以同时显示“ssm”、“ssr”和“sst”的值。
这是您可以使用的代码:
library(tibble)
library(ggplot2)
sse <- c(2527.5, 716.3)
model <- c('ssm', 'ssr')
value <- c('sst')
bar <- tibble(sse, model, value)
ggplot(bar, aes(x = value, y = sse, fill = sse, label = sse)) +
geom_bar(position = "stack", stat = "identity", width = .3) +
geom_text(size = 3, position = position_stack(vjust = 0.5))
我添加了一个名为 value 的新变量,它代表“sst”。
另外,我使用 geom_bar 而不是 geom_col 因为它对可视化效果更好。
最后,我使用 geom_text 将数据值添加到堆叠条。
这是它的样子:
推荐阅读
- firebase - Flutter - 如何为消息传递应用程序实现通知?
- python - 为什么这两个函数在dis.dis下反汇编时字节码相同?
- java - 如何设置 log4j?
- css - 不能在 div 中间居中元素
- oracle - 关于 Oracle PL/SQL 引号运算符中的换行符:可以更改默认行为吗?
- c# - 将 2 个列表与 except() 方法进行比较,但它不起作用
- javascript - 如何在猫鼬中填充()之后执行逻辑?
- c# - ASP.NET 对模型的空引用
- javascript - 如何使我的字母对单词的顺序不敏感
- asp.net - 尝试使用带有 ASP.NET 身份的 cookie 身份验证登录时获取 HTTP 500