# Example (JKQTPLotter): Simple line-graph with error bars {#JKQTPLotterSymbolsErrors} This project (see `./examples/simpletest_symbols_and_errors/`) simply creates a JKQTPLotter widget (as a new window) and adds a single line-graph (a sine-wave) that has y-errorbars. In addition, this example shows how to change some of the axis properties and how to use LaTeX markup to format axis labels (can actually be used for all labels in JKQTPLotter). Also, in comparison to the last example, here we initialize the data from C-type arrays (double*), instead of QVector objects. The soruce code of the main application is (see [`jkqtplotter_simpletest_symbols_and_errors.cpp`](../simpletest_symbols_and_errors/jkqtplotter_simpletest_symbols_and_errors.cpp): ```.cpp #include #include "jkqtplotter/jkqtplotter.h" // number of datapoints: #define Ndata 10 int main(int argc, char* argv[]) { QApplication app(argc, argv); // 1. create a plotter window and get a pointer to the internal datastore (for convenience) JKQTPLotter plot; JKQTPDatastore* ds=plot.getDatastore(); // 2. now we create data for a simple plot (a sine curve with lin. increasing errors) double X[Ndata], Y[Ndata], YERROR[Ndata]; for (int i=0; iaddCopiedColumn(X, Ndata, "x"); size_t columnY=ds->addCopiedColumn(Y, Ndata, "y"); size_t columnYE=ds->addCopiedColumn(YERROR, Ndata, "y-error"); // 4. create a graph in the plot, which plots the dataset X/Y: JKQTPXYLineErrorGraph* graph1=new JKQTPXYLineErrorGraph(&plot); graph1->set_xColumn(columnX); graph1->set_yColumn(columnY); graph1->set_yErrorColumn(columnYE); graph1->set_symbol(JKQTPFilledStar); // set symbol style graph1->set_yErrorStyle(JKQTPErrorBars); // set error indicator type graph1->set_drawLine(false); // don't draw a line graph1->set_title(QObject::tr("sine graph")); // 5. add the graph to the plot, so it is actually displayed plot.addGraph(graph1); // 6. hide 0-lines plot.get_xAxis()->set_showZeroAxis(false); plot.get_yAxis()->set_showZeroAxis(false); // 7. set some axis properties (we use LaTeX for nice equation rendering) plot.get_xAxis()->set_axisLabel(QObject::tr("x-axis $x$ [mm]")); plot.get_yAxis()->set_axisLabel(QObject::tr("\\textbf{\\color{red}{y-axis} $\\left(y=\\sin(x)\\pm(0.2+0.25\\cdot x)\\right)$ [A.U.]}")); plot.get_xAxis()->set_labelFont("Arial"); plot.get_yAxis()->set_labelFont("Times New Roman"); plot.get_yAxis()->set_labelFontSize(12); // large x-axis label plot.get_yAxis()->set_tickLabelFontSize(10); // and larger y-axis tick labels // 8. autoscale the plot so the graph is contained plot.zoomToFit(); // show plotter and make it a decent size plot.show(); plot.resize(600,400); return app.exec(); } ``` The result looks like this: ![jkqtplotter_simpletest_symbols_and_errors](../../screenshots/jkqtplotter_simpletest_symbols_and_errors.png)