0

我的数据如下所示:

Subcategory    Title   Value
Sub1           Name1   2
Sub1           Name2   5
Sub2           Name3   4
Sub2           Name4   1
Sub3           Name5   2
Sub3           Name6   7
Sub4           Name1   7
Sub4           Name2   5
Sub5           Name3   4
Sub5           Name4   3
Sub6           Name5   9
Sub6           Name6   1

将 Title 添加到 Row 字段并将 Sum(Value) 添加到 Size 架子,我得到一个水平条形图,其中条形的长度等于给定标题的值的总和。例如,一个标有 Name1 且长 9 个单位的条,另一个标有 Name2 且长 10 个单位的条,等等。我想给条着色,以便给定子类别对条长度的贡献被绘制在酒吧。因此,Name1 条将有一个 2 个单位长的蓝色条堆叠在一个 7 个单位长的红色条上。名称 2 条将有一个 5 个单位长的蓝色条堆叠在一个 5 个单位长的橙色条上。

但是,当我将子类别添加到颜色架时,比例会发生变化,因此条形的长度现在等于子类别的最大值,并且其他值不会堆叠,而是叠加。我没有将 2 个单位的蓝色条堆叠在 7 个单位的红色条上,总长度为 9,而是得到一个总共 7 个单位的条,其中 2 个单位涂成蓝色。

这将解释从“具有最高值的类别是什么(以及子类别对此有何贡献)?” 到“子类别最高的类别是什么?” 因为现在 Name1 条现在是 7 个单位,而 Name2 条现在只有 5 个单位长,您看不到其他颜色。

请让我知道是否有办法在 Tableau 中执行此操作,或者如果您是 ggplot2 向导,我会很乐意使用 R 代码来执行此操作。

4

3 回答 3

2

检查这个,但我不确定着色是否正确:

library("ggplot2")
p <- ggplot(data=dat, aes(x=Title, y=Value, fill=Subcategory)) +
       geom_bar(position="stack", stat="identity") +
       coord_flip()
print(p)

ggplot 示例

于 2011-04-29T20:55:02.553 回答
1

这应该在ggplot中做你想要的:

ggplot(dat, aes(x = Title,y = Value, fill = Subcategory)) + 
  geom_bar(stat = "identity") +
  coord_flip()
于 2011-04-29T20:56:24.860 回答
1

在 Tableau 中,将标题放在行上,将值放在列上,将子类别放在颜色上。

我在 Tableau Public 上举了一个例子——http://public.tableausoftware.com/views/QuantitativeStackedBars/Sheet1?:embed= y

这是它的样子。

于 2012-01-30T08:21:35.510 回答