geom_errorbar表示正平均值,较低表示负平均值

时间:2016-08-30 22:50:34

标签: r plot ggplot2 geom-bar

我想在我的geom_bar图上绘制误差条。我知道您可以调整aes(ymax,ymin)以仅显示上限或仅下限。

但是,我有一些负面和正面的平均值,我想分别显示误差线。

以下是一些示例代码和数据

#include <algorithm>
#include <boost/circular_buffer.hpp>

template <typename T>
class Wrapper {
 public:
    struct Sample {
        T foo;
    };

    typedef typename boost::circular_buffer<Sample>::iterator MyIterator;

    Wrapper(int size) { cb.resize(size); }

    void add(T val) { cb.push_back(Sample{val}); }

    void doWork(T bound) const {
        MyIterator iter =
            std::upper_bound(cb.begin(), cb.end(), Sample{3},
                         [](const Sample& a, const Sample& b) { return a.foo < b.foo; });
    }

    boost::circular_buffer<Sample> cb;
};

int main() {
    Wrapper<int> buf(100);
    buf.add(1);
    buf.add(5);
    buf.doWork(3);
    return 0;
}

由于 - 深

1 个答案:

答案 0 :(得分:4)

您可以重新定义限制,以便它们以mean_new为条件(无论是正数还是负数):

limits <- aes(
  ymax = myDataN$mean_new + (myDataN$mean_new > 0)*myDataN$se_new,  
  ymin = myDataN$mean_new - (myDataN$mean_new < 0)*myDataN$se_new)

鉴于上述定义,您将获得以下图表:

enter image description here

去除接触棒的晶须可能是好的。但是,我目前无法弄清楚如何做到这一点。