gpt4 book ai didi

r - 如何在 R 中创建(100%)堆叠直方图?

转载 作者:行者123 更新时间:2023-12-04 11:13:21 25 4
gpt4 key购买 nike

我的数据集:

我有以下格式的数据(这里是从 CSV 文件导入的)。您可以找到 CSV 格式的示例数据集 here .

PAIR   PREFERENCE
1 5
1 3
1 2
2 4
2 1
2 3

… 等等。一共19对, PREFERENCE范围从 15 ,作为离散值。

我正在努力实现的目标:

我需要的是堆叠直方图,例如每对的 100% 高列,表示 PREFERENCE 的分布值。

类似于 Excel 中的“100% 堆叠列”,或者(虽然不完全相同,所谓的“马赛克图”):



我试过的:

我认为使用 ggplot2 最简单,但我什至不知道从哪里开始。我知道我可以创建一个简单的条形图,例如:
ggplot(d, aes(x=factor(PAIR), y=factor(PREFERENCE))) + geom_bar(position="fill")

......然而,这并没有让我走得很远。所以我尝试了这个,它让我更接近我想要实现的目标,但它仍然使用 PREFERENCE 的计数。 , 我想?请注意 ylab在这里被“计数”,并且值范围为 19。
qplot(factor(PAIR), data=d, geom="bar", fill=factor(PREFERENCE_FIXED))

结果是:

enter image description here
  • 那么,我该怎么做才能让堆叠的条形代表直方图?
  • 或者他们真的已经这样做了吗?
  • 如果是这样,我必须改变什么才能使标签正确(例如,使用百分比而不是“计数”)?

  • 顺便说一句,这与 this question 没有真正的关系。 ,并且仅与 this 略微相关(即可能是相同的想法,但不是连续值,而是分组为条形)。

    最佳答案

    也许你想要这样的东西:

    ggplot() + 
    geom_bar(data = dat,
    aes(x = factor(PAIR),fill = factor(PREFERENCE)),
    position = "fill")

    我已将您的数据读入 dat .这会输出如下内容:

    enter image description here

    y 标签仍然是“计数”,但您可以通过添加以下内容手动更改:
    + scale_x_discrete("Pairs") + scale_y_continuous("Votes")

    关于r - 如何在 R 中创建(100%)堆叠直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757680/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com