具有渐变颜色的分组ggplot条依赖于另一个变量

时间:2016-02-18 22:53:39

标签: r colors ggplot2

我的数据集包括8(4x2)次观察的“左”和“右”的值。像这个TEST框架:

ProgressBarStyle    pbStyle = new ProgressBarStyle(guiSkin.getDrawable("background"),guiSkin.getDrawable("knob"));
pbStyle.knobBefore  = pbStyle.knob;
pb                  = new ProgressBar(0, 100, 1, false, pbStyle);
pb.setSize(Gdx.graphics.getWidth(), 10);
pb.setPosition(0, pb.getHeight() * 2);
stage.addActor(pb);
pb.setValue(100);

我可以创建一个分组图:

Labels        r         pval      Mean  Side
L1 0.49425792 1.191802e-04 0.7992786  Left
L2 0.25906498 3.371854e-02 1.7977923  Left
L3 0.63098789 3.711588e-07 0.8519239  Left
L4 0.20325181 7.707517e-02 1.1287030  Left
L1 0.72761384 7.991909e-10 1.1369230  Right
L2 0.93941231 0.000000e+00 1.0262915  Right
L3 0.80899301 3.805845e-13 1.1670454  Right
L4 0.30345181 7.507517e-02 1.1677030  Right

情节非常好,我可以看到每个标签的“左/右”分组。但是,我想使用渐变颜色来填充每个条形图,使用“均值”中的值,保持分组的“左/右”条形。

有可能吗? 谢谢, FAB

1 个答案:

答案 0 :(得分:1)

您可以根据Side添加group语句,并根据Mean指定fill

ggplot(data = TEST, aes(factor(Labels),r, group=Side, fill=Mean)) + 
  geom_bar(stat="identity", position = "dodge")

如果您想更改颜色,可以添加scale_fill_gradient(),例如

scale_fill_gradient(low="blue", high="red")

enter image description here