/** \example impulsesplot.cpp * Shows how to plot impulse graphs with JKQTPlotter * * \ref JKQTPlotterImpulsePlots */ #include "jkqtpexampleapplication.h" #include #include "jkqtplotter/jkqtplotter.h" #include "jkqtplotter/graphs/jkqtpimpulses.h" // number of datapoints: #define Ndata 40 int main(int argc, char* argv[]) { JKQTPAppSettingController highDPIController(argc, argv); JKQTPExampleApplication 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) QVector X, Y; for (int i=0; iaddCopiedColumn(X, "x"); size_t columnY=ds->addCopiedColumn(Y, "y"); // 4. create a vertical impulse graph in the plot, which plots the dataset X/Y: JKQTPImpulsesVerticalGraph* graph=new JKQTPImpulsesVerticalGraph(&plot); graph->setXColumn(columnX); graph->setYColumn(columnY); graph->setLineWidth(2); graph->setColor(QColor("red")); graph->setTitle(QObject::tr("$\\cos(x)\\cdot\\exp(-x/10)$")); //graph->setDrawSymbols(true); //graph->setSymbolType(JKQTPGraphSymbols::JKQTPFilledStar); //graph->setBaseline(0.25); // 5. add the graph to the plot, so it is actually displayed plot.addGraph(graph); // 6. set some axis properties (we use LaTeX for nice equation rendering) plot.getXAxis()->setAxisLabel(QObject::tr("x-axis")); plot.getYAxis()->setAxisLabel(QObject::tr("y-axis")); // 7. switch the grid off plot.getXAxis()->setDrawGrid(false); plot.getYAxis()->setDrawGrid(false); // 8. autoscale the plot so the graph is contained plot.zoomToFit(); // show plotter and make it a decent size plot.show(); plot.resize(600/plot.devicePixelRatioF(),400/plot.devicePixelRatioF()); return app.exec(); }