Displaying plots or graphs in Cinder

Hi all,

Does anyone know of a good way to display a scientific-style plots in Cinder? I am thinking, for example, of displaying financial data as a time series, or displaying the real-time output from a sensor device as a graphical plot.

There may be a Cinder block or similar out there that would help with this, but I can’t seem to find one.

Kind regards,


Hi Dave,

for relatively static data, you’d might want to have a look at the Cairo samples. They allow you to create high quality 2D graphics.

For dynamic data, I’d suggest to create a VboMesh using a GL_LINE_STRIP primitive. Then you’d simply update the 2D vertices and draw them as a gl::Batch. As far as I know, there are no ready-made samples that do exactly this, but you can find something similar in this sample as well as in the even more appropriate VboMesh sample.


In addition to Cairo, you could use Shape2d if you just want a simple graph with no curves or fanciness.

Something like this should work:

    // in header
    std::vector<float> mData;
    Shape2d mGraph;

    // in setup or update
    mGraph.moveTo(0, 0);
    for (int i = 0; i < mData.size(); i++) {
        mGraph.lineTo(vec2(i, -mData[i]));
    mGraph.lineTo(0, 0);

    // in draw
    gl::ScopedColor c(1, 1, 0);

Thanks both for your helpful answers.

Kind regards,