Stacked/Dodged 以 R 为基数 x 轴的条形图是数值数据
Stacked/Dodged barplot using base R with x-axis is numerical data
我查看了站点中的所有条形图问题,但仍然无法弄清楚如何处理我的数据集。我不知道它是否重复,但非常感谢任何帮助
我的数据集
Region Scenario HC NPV1 NPV2
C 1 0.1 10 5
C 2 0.2 8 4
C 3 0.3 7 3
C 4 0.4 6 2
N 1 0.1 10 5
N 2 0.2 8 4
N 3 0.3 7 3
N 4 0.4 6 2
W 1 0.1 10 5
W 2 0.2 8 4
W 3 0.3 7 3
W 4 0.4 6 2
我想创建一个条形图,其中 HC、Scenario 位于 x 轴,NPV1 和 NPV2 是高度,并通过不同的模式进行区分。一个区域应该是每4个场景中间的一个通用名称。
非常感谢。
预期的输出是这样的。
除了我的上述评论,我还不太清楚您希望如何可视化您的数据。您到底想在 x 轴上显示什么?
首先,也许您正在寻找这样的东西?
library(tidyverse)
df %>%
gather(key, val, -Region, -Scenario, -HC) %>%
unite(x, Region, Scenario, HC) %>%
ggplot(aes(x, val, fill = key)) +
geom_col()
x-axis 上的类别格式为 <Region>_<Scenario>_<HC>
。
更新
要获得与您展示的情节相似的情节,您可以执行以下操作
library(tidyverse)
df %>%
gather(key, val, -Region, -Scenario, -HC) %>%
ggplot(aes(HC, val, fill = key)) +
geom_col(position = "dodge2") +
facet_wrap(~Region, nrow = 1, strip.position = "bottom") +
theme_minimal() +
theme(strip.placement = "outside")
说明:strip.position = "bottom"
确保条带标签在底部,strip.placement = "outside"
确保条带标签在轴标签下方(准确地说,在轴标签和轴标题之间)。
示例数据
df <- read.table(text =
"Region Scenario HC NPV1 NPV2
C 1 0.1 10 5
C 2 0.2 8 4
C 3 0.3 7 3
C 4 0.4 6 2
N 1 0.1 10 5
N 2 0.2 8 4
N 3 0.3 7 3
N 4 0.4 6 2
W 1 0.1 10 5
W 2 0.2 8 4
W 3 0.3 7 3
W 4 0.4 6 2
", header = T)
我查看了站点中的所有条形图问题,但仍然无法弄清楚如何处理我的数据集。我不知道它是否重复,但非常感谢任何帮助
我的数据集
Region Scenario HC NPV1 NPV2
C 1 0.1 10 5
C 2 0.2 8 4
C 3 0.3 7 3
C 4 0.4 6 2
N 1 0.1 10 5
N 2 0.2 8 4
N 3 0.3 7 3
N 4 0.4 6 2
W 1 0.1 10 5
W 2 0.2 8 4
W 3 0.3 7 3
W 4 0.4 6 2
我想创建一个条形图,其中 HC、Scenario 位于 x 轴,NPV1 和 NPV2 是高度,并通过不同的模式进行区分。一个区域应该是每4个场景中间的一个通用名称。
非常感谢。
预期的输出是这样的。
除了我的上述评论,我还不太清楚您希望如何可视化您的数据。您到底想在 x 轴上显示什么?
首先,也许您正在寻找这样的东西?
library(tidyverse)
df %>%
gather(key, val, -Region, -Scenario, -HC) %>%
unite(x, Region, Scenario, HC) %>%
ggplot(aes(x, val, fill = key)) +
geom_col()
x-axis 上的类别格式为 <Region>_<Scenario>_<HC>
。
更新
要获得与您展示的情节相似的情节,您可以执行以下操作
library(tidyverse)
df %>%
gather(key, val, -Region, -Scenario, -HC) %>%
ggplot(aes(HC, val, fill = key)) +
geom_col(position = "dodge2") +
facet_wrap(~Region, nrow = 1, strip.position = "bottom") +
theme_minimal() +
theme(strip.placement = "outside")
说明:strip.position = "bottom"
确保条带标签在底部,strip.placement = "outside"
确保条带标签在轴标签下方(准确地说,在轴标签和轴标题之间)。
示例数据
df <- read.table(text =
"Region Scenario HC NPV1 NPV2
C 1 0.1 10 5
C 2 0.2 8 4
C 3 0.3 7 3
C 4 0.4 6 2
N 1 0.1 10 5
N 2 0.2 8 4
N 3 0.3 7 3
N 4 0.4 6 2
W 1 0.1 10 5
W 2 0.2 8 4
W 3 0.3 7 3
W 4 0.4 6 2
", header = T)