slh*_*hck 7 plot r histogram ggplot2
我有以下格式的数据(此处,从CSV文件导入).您可以在此处找到CSV格式的示例数据集.
PAIR PREFERENCE
1 5
1 3
1 2
2 4
2 1
2 3
Run Code Online (Sandbox Code Playgroud)
… 等等.总共有19对,PREFERENCE范围从1到5,作为离散值.
我需要的是每对的堆叠直方图,例如100%高的列,指示PREFERENCE值的分布.
类似于Excel中的"100%堆积列",或者(尽管不完全相同,所谓的"马赛克图"):

我认为它最容易使用ggplot2,但我甚至不知道从哪里开始.我知道我可以创建一个简单的条形图,例如:
ggplot(d, aes(x=factor(PAIR), y=factor(PREFERENCE))) + geom_bar(position="fill")
Run Code Online (Sandbox Code Playgroud)
......然而,这并没有让我走得太远.所以我尝试了这个,它让我更接近我想要实现的目标,但它仍然使用了PREFERENCE我的计数,我想?注意ylab这里是"count",值是19.
qplot(factor(PAIR), data=d, geom="bar", fill=factor(PREFERENCE_FIXED))
Run Code Online (Sandbox Code Playgroud)
结果是:

jor*_*ran 10
也许你想要这样的东西:
ggplot() +
geom_bar(data = dat,
aes(x = factor(PAIR),fill = factor(PREFERENCE)),
position = "fill")
Run Code Online (Sandbox Code Playgroud)
我把你的数据读进去的地方dat.这输出如下:

y标签仍然是"count",但您可以通过添加以下内容手动更改:
+ scale_x_discrete("Pairs") + scale_y_continuous("Votes")
Run Code Online (Sandbox Code Playgroud)