From 18a3a9857ae2770394d16e1b018a42f52aa1fb81 Mon Sep 17 00:00:00 2001 From: jkriege2 Date: Sat, 1 Dec 2018 16:02:04 +0100 Subject: [PATCH] added y-range-plot JKQTPfilledVerticalRangeGraph and example for it + date/time axes --- README.md | 1 + doc/images/JKQTPfilledVerticalRangeGraph.png | Bin 0 -> 31908 bytes ...KQTPfilledVerticalRangeGraph_WithLines.png | Bin 0 -> 41178 bytes .../jkqtplotter_simpletest_dateaxes.png | Bin 0 -> 39051 bytes lib/jkqtplotter/jkqtpbaseelements.cpp | 12 +- lib/jkqtplotter/jkqtpbaseelements.h | 6 +- lib/jkqtplotter/jkqtpelements.cpp | 238 +++++++++++++++ lib/jkqtplotter/jkqtpelements.h | 78 +++++ .../jkqtplotter_simpletest_dateaxes.png | Bin 0 -> 33981 bytes .../jkqtplotter_simpletest_dateaxes_small.png | Bin 0 -> 16798 bytes ...qtplotter_simpletest_dateaxes_timeaxis.png | Bin 0 -> 32648 bytes .../jkqtplotter_simpletest_dateaxes/README.md | 171 +++++++++++ .../jkqtplotter_simpletest_dateaxes.cpp | 172 +++++++++++ .../jkqtplotter_simpletest_dateaxes.pro | 20 ++ .../jkqtplotter_simpletest_dateaxes.qrc | 7 + .../weatherdata_gelsenkirchen.csv | 24 ++ .../weatherdata_heidelberg.csv | 289 ++++++++++++++++++ .../weatherdata_heidelberg_2018-10-14.csv | 145 +++++++++ 18 files changed, 1154 insertions(+), 9 deletions(-) create mode 100644 doc/images/JKQTPfilledVerticalRangeGraph.png create mode 100644 doc/images/JKQTPfilledVerticalRangeGraph_WithLines.png create mode 100644 doc/images/jkqtplotter_simpletest_dateaxes.png create mode 100644 screenshots/jkqtplotter_simpletest_dateaxes.png create mode 100644 screenshots/jkqtplotter_simpletest_dateaxes_small.png create mode 100644 screenshots/jkqtplotter_simpletest_dateaxes_timeaxis.png create mode 100644 test/jkqtplotter_simpletest_dateaxes/README.md create mode 100644 test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.cpp create mode 100644 test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.pro create mode 100644 test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.qrc create mode 100644 test/jkqtplotter_simpletest_dateaxes/weatherdata_gelsenkirchen.csv create mode 100644 test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg.csv create mode 100644 test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg_2018-10-14.csv diff --git a/README.md b/README.md index d01dfcd08f..1a18260b95 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ All test-projects are Qt-projects that use qmake to build. You can load them int | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest1_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest) | [Very Basic Example (Line Graph)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest) | `JKQTPxyLineGraph`
C-style arrays of data | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_symbols_and_styles_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_symbols_and_styles) | [Line Graph with Different Symbols and Line Styles](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_symbols_and_styles) | `JKQTPxyLineGraph`
C++ vector of data
setting line styles and symbol styles
automatic graph coloring | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_logaxes_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_logaxes) | [logarithmic axes](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_logaxes) | `JKQTPxyLineGraph` and `JKQTPgeoText`
C++ vector of data
logarithmic axes
plot line styles
internal LaTeX parser
add commenting text to a graph | +| [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_dateaxes) | [date/time axes](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_dateaxes) | `JKQTPxyLineGraph` and ``
C++ vector of data
date/time axes
plot min/max range graph
internal LaTeX parser
data from CSV files | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_symbols_and_errors_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_symbols_and_errors) | [Simple Line/Symbol Graph With Errorbars](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_symbols_and_errors) | `JKQTPxyLineErrorGraph`
C-style arrays of data | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_barchart_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_barchart) | [Simple Bar Charts](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_barchart) | `JKQTPbarVerticalGraph`
C-style arrays of data | | [![](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/JKQTPbarVerticalGraphStacked_small.png)](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_stackedbars) | [Stacked Bar Charts](https://github.com/jkriege2/JKQtPlotter/tree/master/test/jkqtplotter_simpletest_stackedbars) | `JKQTPbarVerticalStackableGraph`, `JKQTPbarHorizontalStackableGraph`
C++-style vectors of data | diff --git a/doc/images/JKQTPfilledVerticalRangeGraph.png b/doc/images/JKQTPfilledVerticalRangeGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..55c20242d43dded76e9c190fb49e69ad95c6527e GIT binary patch literal 31908 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%0AB>j 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 MB~8Wh`;Wr@FJ?V~LjV8( literal 0 HcmV?d00001 diff --git a/doc/images/JKQTPfilledVerticalRangeGraph_WithLines.png b/doc/images/JKQTPfilledVerticalRangeGraph_WithLines.png new file mode 100644 index 0000000000000000000000000000000000000000..ed35d14616bd00aca1c3c3267a69ebf737707d5e GIT binary patch literal 41178 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 + //std::cout<<"got style settings from parent: "<getPlotStyle(parentPlotStyle).color(); + style=parent->getPlotStyle(parentPlotStyle).style(); + fillColor=color.lighter(); + } +} + +JKQTPfilledVerticalRangeGraph::JKQTPfilledVerticalRangeGraph(JKQtPlotter *parent): + JKQTPxyGraph(parent) +{ + drawSelectionLine=false; + selectionLineColor=Qt::transparent; + color=QColor("red"); + fillColor=color.lighter(); + style=Qt::SolidLine; + lineWidth=2; + parentPlotStyle=-1; + drawLine=true; + fillStyle=Qt::SolidPattern; + + if (parent) { // get style settings from parent object + parentPlotStyle=parent->getNextStyle(); + //std::cout<<"got style settings from parent: "<getPlotStyle(parentPlotStyle).color(); + style=parent->getPlotStyle(parentPlotStyle).style(); + fillColor=color.lighter(); + } +} + +bool JKQTPfilledVerticalRangeGraph::getYMinMax(double &miny, double &maxy, double &smallestGreaterZero) +{ + bool start=true; + miny=0; + maxy=0; + smallestGreaterZero=0; + + if (parent==nullptr) return false; + + JKQTPdatastore* datastore=parent->getDatastore(); + int imin=0; + int imax=qMin(qMin(datastore->getColumn(static_cast(xColumn)).getRows(), datastore->getColumn(static_cast(yColumn)).getRows()), datastore->getColumn(static_cast(yColumn2)).getRows()); + // interpret data ranges + if (datarange_start>-1) { + imin=qMin(datarange_start, static_cast(imax)); + } + if (datarange_end>-1) { + imax=qMin(datarange_end, static_cast(imax)); + } + if (imaxget(static_cast(yColumn),static_cast(i)); + double yv2=datastore->get(static_cast(yColumn2),static_cast(i)); + if (JKQTPIsOKFloat(yv)) { + if (start || yv>maxy) maxy=yv; + if (start || yvmaxy) maxy=yv2; + if (start || yv2getDatastore(); + if (datastore==nullptr) return; + + drawErrorsBefore(painter); + + painter.save(); + + QPen p=painter.pen(); + p.setColor(color); + p.setWidthF(qMax(JKQTPLOTTER_ABS_MIN_LINEWIDTH, parent->pt2px(painter, lineWidth*parent->get_lineWidthMultiplier()))); + p.setStyle(style); + p.setJoinStyle(Qt::RoundJoin); + p.setCapStyle(Qt::RoundCap); + QPen np(Qt::NoPen); + + QBrush b=painter.brush(); + b.setColor(fillColor); + b.setStyle(fillStyle); + + int imax=qMin(qMin(datastore->getColumn(static_cast(xColumn)).getRows(), datastore->getColumn(static_cast(yColumn)).getRows()), datastore->getColumn(static_cast(yColumn2)).getRows()); + int imin=0; + // interpret data ranges + if (datarange_start>-1) { + imin=qMin(datarange_start, static_cast(imax)); + } + if (datarange_end>-1) { + imax=qMin(datarange_end, static_cast(imax)); + } + if (imaxget(static_cast(xColumn),static_cast(i)); + double yv=datastore->get(static_cast(yColumn),static_cast(i)); + double yv2=datastore->get(static_cast(yColumn2),static_cast(i)); + //std::cout<<"(xv, yv) = ( "<x2p(xv); bool xok=JKQTPIsOKFloat(x); + double y=yAxis->x2p(yv); bool yok=JKQTPIsOKFloat(y); + double y2=yAxis->x2p(yv2); bool y2ok=JKQTPIsOKFloat(y2); + + if (xok&&yok) phigh.append(QPointF(x,y)); + if (xok&&yok) poly_all.append(QPointF(x,y)); + if (xok&&y2ok) plow.append(QPointF(x,y2)); + } + } + + if (plow.size()>0) { + for (int i=plow.size()-1; i>=0; i--) { + poly_all.append(plow[i]); + } + } + painter.setBrush(b); + painter.setPen(np); + painter.drawPolygon(poly_all); + + painter.restore(); + if (drawLine) { + painter.save(); + + if (drawSelectionLine) { + QPen penSelection=p; penSelection.setStyle(Qt::SolidLine); + QColor selcol=penSelection.color(); selcol.setAlphaF(0.5); penSelection.setColor(selcol); + if (selectionLineColor!=Qt::transparent) { + penSelection.setColor(selectionLineColor); + } + penSelection.setWidthF(penSelection.widthF()*3.0); + painter.setPen(penSelection); + painter.drawPolyline(phigh); + painter.drawPolyline(plow); + } + + + painter.setPen(p); + painter.drawPolyline(phigh); + painter.drawPolyline(plow); + painter.restore(); + } + + drawErrorsAfter(painter); +} + +void JKQTPfilledVerticalRangeGraph::drawKeyMarker(JKQTPEnhancedPainter &painter, QRectF &rect) +{ + painter.save(); + QRectF r=rect; + r.setHeight(r.height()/2.0); + r.moveTo(r.x(), r.y()+r.height()-1); + painter.fillRect(r, getBrush(painter)); + if (drawLine) { + painter.setPen(getLinePen(painter)); + painter.drawLine(QLineF(r.topLeft(), r.topRight())); + } + painter.restore(); +} + +QColor JKQTPfilledVerticalRangeGraph::getKeyLabelColor() +{ + return color; +} + +QBrush JKQTPfilledVerticalRangeGraph::getBrush(JKQTPEnhancedPainter &painter) const +{ + QBrush b; + b.setColor(fillColor); + b.setStyle(fillStyle); + return b; +} + +QPen JKQTPfilledVerticalRangeGraph::getLinePen(JKQTPEnhancedPainter &painter) const +{ + QPen p; + p.setColor(color); + p.setWidthF(qMax(JKQTPLOTTER_ABS_MIN_LINEWIDTH, parent->pt2px(painter, lineWidth*parent->get_lineWidthMultiplier()))); + p.setStyle(style); + p.setJoinStyle(Qt::RoundJoin); + p.setCapStyle(Qt::RoundCap); + return p; +} diff --git a/lib/jkqtplotter/jkqtpelements.h b/lib/jkqtplotter/jkqtpelements.h index 02a82a96cc..466ea3a27f 100644 --- a/lib/jkqtplotter/jkqtpelements.h +++ b/lib/jkqtplotter/jkqtpelements.h @@ -605,6 +605,84 @@ class LIB_EXPORT JKQTPfilledCurveYErrorGraph: public JKQTPfilledCurveYGraph, pub + +/*! \brief This implements filled curve plots where the area is filled between two data columns for each x-value + \ingroup jkqtplotter_plots + + With set_drawlines(false): + \image html JKQTPfilledVerticalRangeGraph.png + + With set_drawlines(true): + \image html JKQTPfilledVerticalRangeGraph_WithLines.png + */ +class LIB_EXPORT JKQTPfilledVerticalRangeGraph: public JKQTPxyGraph { + Q_OBJECT + public: + /** \brief class constructor */ + JKQTPfilledVerticalRangeGraph(JKQtBasePlotter* parent=nullptr); + /** \brief class constructor */ + JKQTPfilledVerticalRangeGraph(JKQtPlotter* parent); + /** \brief get the maximum and minimum y-value of the graph + * + * The result is given in the two parameters which are call-by-reference parameters! + */ + virtual bool getYMinMax(double& miny, double& maxy, double& smallestGreaterZero); + + /** \copydoc JKQTPgraph::usesColumn() */ + virtual bool usesColumn(int column); + + /** \brief plots the graph to the plotter object specified as parent */ + virtual void draw(JKQTPEnhancedPainter& painter); + /** \brief plots a key marker inside the specified rectangle \a rect */ + virtual void drawKeyMarker(JKQTPEnhancedPainter& painter, QRectF& rect); + /** \brief returns the color to be used for the key label */ + virtual QColor getKeyLabelColor(); + + JKQTPGET_SET_MACRO(int, yColumn2) + JKQTPSET_CAST_MACRO(size_t, int, yColumn2) + + JKQTPGET_SET_MACRO(QColor, color) + JKQTPGET_SET_MACRO(QColor, fillColor) + JKQTPGET_SET_MACRO(Qt::PenStyle, style) + JKQTPGET_SET_MACRO(bool, drawLine) + JKQTPGET_SET_MACRO(Qt::BrushStyle, fillStyle) + + JKQTPGET_SET_MACRO(bool, drawSelectionLine) + JKQTPGET_SET_MACRO(QColor, selectionLineColor) + + protected: + + /** \brief the column that contains the second y-component of the range */ + int yColumn2; + /** \brief if \c true, draws a thick shadow around the line*/ + bool drawSelectionLine; + /** \brief color for the shadow, or a lighter version of the line color, if transparent (default) */ + QColor selectionLineColor; + + /** \brief which plot style to use from the parent plotter (via JKQtPlotterBase::getPlotStyle() and JKQtPlotterBase::getNextStyle() ) */ + int parentPlotStyle; + + /** \brief color of the graph */ + QColor color; + /** \brief color of the graph fill */ + QColor fillColor; + /** \brief fill styl for the curve */ + Qt::BrushStyle fillStyle; + /** \brief linestyle of the graph lines */ + Qt::PenStyle style; + /** \brief width (pixels) of the graph */ + double lineWidth; + /** \brief indicates whether to draw a line or not */ + bool drawLine; + + QBrush getBrush(JKQTPEnhancedPainter& painter) const; + QPen getLinePen(JKQTPEnhancedPainter& painter) const; +}; + + + + + /*! \brief This implements a step plot with values \f$ \left(x, f(x) \right) \f$ \ingroup jkqtplotter_plots diff --git a/screenshots/jkqtplotter_simpletest_dateaxes.png b/screenshots/jkqtplotter_simpletest_dateaxes.png new file mode 100644 index 0000000000000000000000000000000000000000..a166699e858c25d1e41f2501619ee9573e8cc1a9 GIT binary patch literal 33981 zcmb@s1yGf1*e*<`fJnCj(kU(7ptN)&QqtWaf}X!W0w{aR(8?dYe1|fQK`9aihS&bBdqY4IdwARt_Dd^ zTv2$<4PN-D_4`|F)Fl;cOa_}AWZK6O3ZfX#!u$wdJw<-T!$aM0zThrsmbLorX0c)6 zykFy5ht1shfY$wN;b7xZU_+zKcp%PsLX&MVmZ!|*1tL2WE}ZaVxE3D^CE-rwnrLmi z9#PLLx%djxflmqK;Zl@Oz6!lo%lEXOVkwsD5-96L#+uZI;30qW^89Y_4G7KHhFhY7AZC<9?_t8r1 z=*9;hIgTKx?JZ~_cDimPV+wBFjfJ|M)m0CPM)Oag2A4rA>mh#aBR%l%)Zp+$hAd{$ zt|!SY*f2KJBXAmZ(;l{v)k>qao4(b@KTR`1ijvO6h|%OSb6bNxZM=RhK6(92g<)2m z-~4-Cb5%FxyboZeG}qp7kV?N+NzVI;-rQLF%>$W>Iy;b3)#pTiH_aJ+vzT~KtjD-i zYPzg)<4}$-^H{zcf<~h(9L7nFKzNSst4*Z4*O8yy?@zua3VK%(;hTtx!p1z`{YAG)2R7Lpw%_L1kO0O8U@1B45|PJ#Y_O4Mj$ z08adS<02ww*Nrftp=a1KC48@E~o9E zLktErIz;B3?dBnZ>n~CSq6My+hZ1*fJC4t9-wx~OgRY5YgR$T{HTcan_E$7!UG(cC zV{V&IqZfaEVhj9nU_v6rJfXYfyQAkq_5-X}9fxPCH)mPsd=*TpCdf*Jr-sasycJBk zM64N7X5oYxfY{3&Xfn#Ln;dcGGk`y1*I$!p5aX+1{CeA-wX62!`OjjV3$>y100qh? z--Bw;JdN&p8NnNcjw%!XjmhwhHU9^5CDM@#I2b_c5(?$BwBP&~)lmx zRmi9lqi>d1vqm!}GRjO!Xw36Rs3cOTRPzs>MUZ~4!?Qt~;zh78G{OIroc{W?RpOEH z#Qb*_V2jZ|zok`@OZkz9XTO8%EY|-%Fup1H!D>p|Qf0ypq|&_VS7WXN|2?6wFEBdlq{ z6O|YMjAQ$%s!@WEo04{}0`U$SjSu&l-1ZKd2%J#yH^w*#w|AWPatr2bV1vqx2Lt9h zBwJdpTE50q-^3AF)h_KTvYW3on_J;?w`Sl|sk`leg*L zDMiAilwWLTYFpmaR}{jSYpkR78?BLiAP^lGq|+}Q7^?PAYw6|nElyBLww2Q?_FC~h zJ)8`W)1FK_fbwKym`_`T^2F3J1yw(Qi+P8t+FqWyi^0;)QbMf*c&^I%0A2suiDmG} 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 Pz@JA_iVu+Yjo|+Wa%v}M literal 0 HcmV?d00001 diff --git a/screenshots/jkqtplotter_simpletest_dateaxes_small.png b/screenshots/jkqtplotter_simpletest_dateaxes_small.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb57c34512edfe87971c52b3393a80eb4b2e0e1 GIT binary patch literal 16798 zcmV*WKv}f6Xi@@54ZTQ_E-Enz5K6$1 z03tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUFWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il z#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|>%+C|c55>;RS}qbKr-&IQ zTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bf ze_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l90Z_aBhs|Iw0E)7{bq;-T z9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g z$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL1(`yIK=_}U_z%PWq}jQa ziQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{wo%_#%{(V=tO#a9gB!7-$ zM?^BX5>d|Vn*3S!?g~$*UQipUP zL&zMmg;!4Do9IA%up=Rh?=qPj=x&RGBx1dpI68aT- z2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3O zju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvDRIYI4MQ`g1<+DyrL=EogS06Xii({|v`U^zjmmKqDIK93(F5q| z^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6bsWa4l)YH_rsduU0(?DsM zX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5oYvCT^3%%Fs?s{6^;Da# z?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR{dFa}^}2()GkV5)QF?`X z?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJuZ@h2VvIHzbs0S}Rx=JT z&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lghs_<#1?IcWhb_<+P8LFo z28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wuZrx~o$A)4PXj5p@WAm%6 znJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVPgQJ7Uq0M2^(ZDg$vDWbh zi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%562@eae34a)26HyS+zks@6 z$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWkUW(I*6U24LW8oFzvR(TOpMEs5_rp_~TJ^wNN(wM(bC zZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f)7E}wKr~0SXrM^xJP1~RL zDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N5;bK**^9Ef#WdN^)PTf9 zvR*Qp{o-l7TcBI8wqSIn=gRt3(5j`Y zdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7we(PI{6^cd0H#WFzsN0Cz zDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8%%N=0R?Jr6*6Z8cw;d=~ zF3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~E ze(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H9s-9XhaP{M`0e$>L5F*f zu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe@An_mJyvsE<#^c%!il02 zpHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf_v}A;-u3*k3(gmgUSwVD zy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+fub#UWaP88_{E^}7QP*$Y zNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw%>L5Kn>ODH}V8MesW8ASP zKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j|6Kdbc>FRj6+1Ql zT=e|YubW?}zu5oM?q%W8G0~03Uqy)* z0Tm4(f{FyWnHgaQW`?=%p1!-Q_FM1QT~kxtUEK&8+-}{~Qt5>G~ z_x!qyf{~8&Oi7a1|FzGj3HVRjq{x+1IFD{zy`3gsP#T$E6b_3xDe)@?gCPRIhH+Jh zb{7w&p}}H*>OlT~*gyeMl)~Y#<~+zQ7=&<0J}(F|oh1HWyz??=aNcM%X5|%`%x1IE zV35R+ySK||ltDs**_oLW7DbcMgxi%dLZJ}O2*cNdD2nJ;6vKjmZUl%j{lx!`MgzfM zA>b}a66FKjA~Dq^8J_;qPwMb9A>J3Jx%&HMF_AeEnKk}`srbLiWCWQ4em~C0tT7qG zA)Jutd@vBec^n%}rcf}Pk(B|Wn{W!ubl9BRYU;*~%$ip@df$=b1{OZia4bEyD9tSN z^>hnnyVGIq@9lMFWrzKq&aUpvoIC7PXcXg!amgeU;j~}ZOEa_HLc+eBd1_mZ$C=|9@tbV^2z1h+nPJ5d4WtURS z+TpN6Nc=vqO0rsPCbP){iiASxnHiw7P4YlV27=+t>|(Fm9S8)S=}wo+C3^d87PB{K zDkv%Sx;@~Z(IA)%f`I!WKt`(z+SJCxbVr&P@^!Se^m}|(gE-)F+Z~RMwlHq!>+gp& zhQmTnM{|SAm6??{v$(Xg`IGjZ0Wl<^9|)V*>$j#^ysp8ZV92oBo15x0voif&FD!1* zJJ8Y5DHys323H7rj^k=bJD@92=+ zU1qbXSG1IjtT37USi6usD8Bx_UT987ZXtdKOeT{kS*%uz-{0@^m<1~{IjvS}Fc1X6 zje=+r3d+3{15WKAnbVaN@`ohDnFy>tXAFz9EnrvU2JAmrud zaO1?t+_J1pGHleKqq8zIjND{K99qellUsleCC0Q?GcQk+b-gL#%}7ITmeQxh+vh;U zzi-RU&4g~WIMUM79ry`;VAk2$>Ckh2oVVMYj#3aOay}~^tndc{_B5N*UP?s5h0H9c zEzK72c}=`eA=4(M!CoqZ$P^XTROWX=s!S3*7l;v72Q0E|wM;S)|H*w37(PS9nI#_v zD?sMH0PQF*CnMvC$p$za3W~(MFF)6YHNjzFf<=2a5ydxZ2fQ81-JdvL0@pNuhSO@ zx3zUlm^3*jJHy@GzW0;H`Df3r*}J=|-`9;GKWm53uOG%Gke_L z+LJRTj`EA9kk@;%xz(9w+`esFOOL;zVzk3)d*_Y6=2VQII=-y8wZ-oj^NRBWp|JT& zZu>slmJ$o0_{_HSTyRS?hkPEVGjsCHv&u{Id%8N?ySf69O=rf1mo91R>>o2`WO?O8 zpR232qsNw+VSx*5b)0+Qg~uA25$t$_?1IaeNFsyleCg69?d{zLn+;(pwEky3&o6OH ziG^UIV6==KJDU57k`zfXh@~S(m5-`WV)?@2l5ki|v)NcqW?98pcsK}saLMM#nlhE# zq7qWqvdv^deqo8o8;zlk=rvA_It137SD(~?X|8Hu)K}v|YDQ6D1R)ZV6Xvm3<4)nT zYbmmjk>4cyIO2AB-7XH7Jp?xJaS+}bd4um74u|ESh&LR= ztHyyr_M7A}0O|Mp9S#Sm77PY)-skh7ll1g-+=T-Gq@|_dMj|Vb9x&Xy5&&Sg+i?|R zdA(kA&bZr6Lr|Y|*TBF)R#p}wYxG7v;|wlkWMtr{auvPdMhuD`@E1Qt@$=9wsk892 zZ3uDRefM1uV&A@fXPtG{#EBC@j?B!=*4EZfKKZ1fp#k)|W-__Lx(&H~~L7%|t;K73%H*PE|D{F6W2UZ@B2c3g+TefVu>#n9lau3iyPtmgY5YBL;>76Dqrqkn4orIg{r4e=Hk%EXzy?ro+qP}bKKty2 z7hVYRJ^b*)fZV!uD=vZV5Ku7k@ZrNZ-gqNc%z*<3oK9z6US3B>M_XH4U0vM=AAC?< zU5&1Q2ILYvtE{X%`|PuK?AU?T0068Q@ag>X&&QxR06XW+o40-Y_Sv&%*VNSD>dBKQ zaUSdJ^ASOIsw~9v7b&dM>Ct3@8qonDHKj?_+7o-IL#*Q6} zK_L?$G!{5$2k8WHfeeJQs;Ua`fCOK`PDsOy88dLTxVRV+0}Tmzt*EHT&(Fsw0EXZ$ zT)2?*-qfj60RX0EXJ?NeKmOy7KOO^rY~)BFgY|@;_=^?u!V524bkRkSRN#QF0Dtu8 z(Gep?U=~;eAAa~D)WiP$`_VbB_V)Hd)`2#E;4_SLl*B(x(y^!w9=c2C2F=Y_>Bo*8 z18H!eaFHwr9rLVPh@?c#X28${sGpvm9uN+yiMYtUAsHv|)Mw1YHY zv6HRBB^=9%M1uihdh^XU8=?&W*I$1D%aFHH>pv{~)69a+Dq?TJ+ zT5uAqLg$b(#X|wYkS7cT^?21)S528R1(FA@<0^Q}A03!51Qas*0X&2ikeCs;h^rV8 zTvTXHy#XHTL^-KEpP><Gdyg5W8DG;|jT z2lE4}0ar@70cPjUoztgJCq~kQVT3S{f+S=Po&|&$0})djc)Q?&3&=6S8K`Km0gHo3 zgMl`0-VCCH0kr&avazud%ZvC;(|qNXSC%YU0?g?r*bh?&ODyudCC-CA5ZTKvyG$7f z0Qif=M7LldQs!W@dLUqnsnJg;hPU2&YsHEcihe?GKp6IdI>A7D_wI$hfz8Irs;co6 z@TbH=U;sq{L@^{#2P(=X=o55DEJOnf!C=5B09cG*6>e0{z)mO&pBm5t3)L_f0t;My z2BV-`$PN7jA!s0Fkz!~p7j?Hd1E#9aU?La@EYu8yrknx2)ZL`g752n!SUquP1i683gtmyiWR#zt3rf}=#}o^ZnxXR=V@YS!PrOMJC_xe3 z1pufYELO!-rOHCs4Cqo&AFDu3+1Q2^s@C9fr>975q6P(}|Lh(UgI}ZH31$nKOFEE- zl(C&88b}t$G<)2u2t|NDOgGpLi!1q+%Gr~Fox(>!03JHcEynzZuKmv7*^ROde+ohLY3Oxje7GMA%caQua=zm-S z7XeI>F&emtlb2t9Ihak6F62OBvRO@)g*M*w7c4b>8KsuA9|}Bl07x~R<|wBL0~Ur^ z_^{`2tEZKo>KFurPxRpc!6o!FCSlsN*@N=M&AJj4v;VX3Jhgj6HZO-hed^*d3Q1SD#_3_gkLn`qXc48y&$8SIDKgMTjXgKoDsZjLKL^ zT@B0#OG@pOCUGm2gpe|ZK0J$g6cXDsJ~6c?+n%iT)TW!#9R`QPy3BrF%<*xq)RTx-Z%!_JsF|wb^SeEV5G7 z>masKtqF`JHIHT>JK%Fo2_3=4yeL0S~bd6YlNlA(xCCarMpcoyaRo%Aurqs42U1VCQv5 zu9K5eaixW?sKL}X4e#>a=6jdtFHiB^5)Chg*lxC%>+9(0zU5^#@!BQso~tfj!>(__amXPIJmxi8B>cBpp^C=AirF zvLnkraepGuMKc|c&C3tccnK{8v4F8&&dVGQOg!U)_+saamm4nE$0TlqGsHqlK~0=E zv8=2t5D3s?$-cfms@=2jc1CifW~2G}uIJ&iof`j`Oc77W^ULGEe09>R&?kTQ94XrV z!Tn1QEp6~L#GeZ|G=K;{$|@>@&x3jAN;OaA!3pe+6L-uXIX{DC=paLxVJg_+T34k= zVGG@EH_&ZuZG|G8KYu>hMmbWruyB|6?c0ZY^7Hcx3k#K^F#wQurlmm#Fs15@CF6@j zIgqoFl5u1A##82BWD;yc_l7^W{`o@dg+0AJl(9rpioVq&QjV1B0b@}mc$dqivA2+koEwqv=1+n|PkpVx>X?^+4(jCovK@ z>m*|lDN}+?lNwbH=rMv)cS$#z1k>)p-7Al-Y!llOuEh{nm<91>A#&3=$N_9a>hu}U zGi!rur#hx0po&G6mXzIY$D&lHZHE-8!Dwi2??Au-U0P95f%zk}Sg>FL=0I;L;5PU> z=utm231;g9d_4GZXRuStzX3im1B85C6*B)4Sqz}v!@Zb9FTmntCiiqy8C&Y@EE&kXT1$Wo02c zZ)$29IdWucuUsK8#6s`}y0o#ev8br1va*tK5vEE=@Q)-=kK=~_vjW!U03?b}LW~IrIrs9$6JBoRGubg9JEQGmx)eSE6v5vQQd-}YedgTE{Ioz7UPc%(_)+E|!3d*5vK zHnT)4nZM#LW1E|pe-Zq+Aa-$1t8V{A!!It*xwybw5PL`5e3L3WBT6|rIdE7S8X6#l z8s}Ac%$syw>+|@K`_LzzPlmW9afOqcSmBts6w*3v=iWKd&dC1Q{>QU2&q9omXspx6 zHZIHu10U$=PcP?RdQ1o(w;8!2b#av&RWOa7#@kQa{@|DgguA}&ZI=q*R*f!zg_%oHSC#6bE{$AA9!E;6sen=G!kvmy&`NwCmx^(q}V;{^gWb}G_!HhC<*}RN-j8kLr z-o?B7cSjbY#0k<74Hmhj?+Nt0)$^9xR^`h z@5%8`F0?HK3(bPr%*{~N`sxC8dt7^V5AJ@W=M7&t`h1_VQ-#AQi2k2y zed;{tdBi88K4BXdRjQ?kWO>Qo5jv}w~2ELyGB(W6IWs`^<+%8bWMO5Ew+8OdCPxVn&r zu3cMl?dqaoDJ75JW3roa4Y|22cQhM)NzNrWd4Kc$-~Z(M5%INhQSRikH4fR2Exs)- ztEeB-Q z^~u{u-~LwrTXK{Vt>>4QW+(U6)8zgK!-L!X+i%RdQNaXqykf-)98aA#wWUWkdBfZp zdih;3X7~%gh8{ln{r;rsL~15u9FMftQ+r_WfQ+bbxE7UIg}vg=$~!giacO!>=`HW| zzxU^kKSz?K*?g*9eDP*P3}>gW^R=$mD8LX>c!5pX$01RZqVG}&B*y)m({-NuD|H?#jDY9$GnUTfH34#b}EErOuabD850xAv<_MX;S(*ET}-_ zcjCl}5xmh!QadS@TtsFei3i;W3oV8D<{=+>Yu{F1$QP?cp+fH)eIE(UuukG_jbapx z4~}{8W7o$G-i8Pl?R>SmxFg`?Hj=St+Miidw1z5)&tUmeowx2};AG?(nK2#$=`ue@X2n7K3HFbNYhJ1@klJS39cZrxPryMHL?;%&slFc4^+y*iI7p`k>Ck z;~xInfv*Mm1M5gX8Jv0jTqyJ89OgdvK8&79P?0(d5edLciUioUEjGLL@_3OAarU?_9`Ww-DbR6C1bc2mDt*%wfBy=SBHNrnM%L0_{NvI zUV69Z-Ju!L6K{_^o!tYwYdkd*9TVvaSSat7&;5KhEX{2&AZDNy7t1Y(CM;!AMT+2k zziWS-LM}d4dH$IZ5xlPSy36wt7HsK1#5`UD)C47&aC;N&!|c)xXpC&R1<; z4T?#YT`JibDEvl$<1yc{IEGMU-zxjof0zC@d4l=_>2MKt=drPmU2@=(p-LQyiy(hW zicspc?$^LVQQlKBgs1_Lp07yuSlP4ds3ngif9^% zAZbyNd!ZFtFI3%<7R8RYjlVtj_S?H}Z}vAw0)P7F;2G3x_H^6R7gt=IibtvsfMzjS zBH8T#W9kBoFk4Zy;-S$G2>~H#HJAD=h`6oFUiJIp-(S;wO}oE6(i<7wfK0cSyI=m% zh#wi{6sa*m9jPEMlYRU4wYRrZUVn;^000*ONklEnR)xGI0u^2+6K^db81_P>jRjzCA`39886?t2?@Q(>vl=_JJlOyCyE zM}Cz%EwYRAFMeYD6IO%OCoj+Bog{^smp%^x<+6jz`a*pXGSZ67VS8PB54aCZwoHz_ zE6PItZ6H`d1Qit(6$s~*4btcdMznBIPp7ZzT-P7yPgqeI)uLu*zR-H1{$x^l?av?b z=bQ2uWi7%##uJ!NwLNuP{cZ9>akGA7|BLM}{O}2vLhULwd>VsCDW+lGJcNK zV3ZT2W5^s;cblY*UGVKETA!#1*T}AEI(wn}h3^!7 zCo7btzELv}8~#pf+=I42+Y!$Z*$`5_c9>PCRX;oK*({btv!G|ons-GtBNDbsJP>yv zLS{+ElHXPS?pt-=lGCRK?f`payZCa~%iqiUUMLWv1Y3JsyTLv@!3I3q+S*_R!6YfV zRY7B8BSe$-e*^P-dV0uT)szB@VeuW;J3|HbAx59CkQ>R8cgPoAnYYsK^-F@JsUaqD zCq)k(03TS%j3|Y<%7~yHZT+h*1;+Zgq40+9d%rKI-@NRIbYy$?_C?|%c;ksmf&Kgg zS1f82)dSH%I27JDuupz>ClC?A^0e|N%AUvx=JfgcsH6|bP(QmAv9Tk~xpDI_~Jyga4WU0Xj;pXJV~tE+2mZSCsnDjbzJjD?aYH8(dG z6cm7w@^^CF^ zHaHBnG+U9g=!z?@zzUc=WpbPxDQ(@EmX=030Ti4xX%gi~Y1hU?LB(<3@r_*@BUxz%JZ-|_r6 z3ciu3pHvdRM=eL?d4(e`;#ac2a!RPC4yJK=epvoPAnyvhJ5DWeVCg{ZhErqNq3rCez>2>9y$5Qs)ALq(t}nf)>TPW=`7(h#Xq+FQKo}Gl2^MZ z=b}%I@TX`bhz~bEEXSk0Oprg3CvO1_zcNl8Dcl*@(xXR@PM9zub|=>Q`g(eyNh8Sp zq5iuXd8#_ZjbCQMiWsxeys}^=)761WI~_%eHo-n&Y2MOj1J6>Ol~3^9cI>vzQ#YH3 ze}C+WwkLk@$q()ycmK78*T(Iq)>FH=XR~}H%A~RytrUaCB9lrQC@Guc=AZH9X5NEe@fC))u77M+Z^dnCKVq~ z9|mgkg6s=6iJN4vctBoWzdG@&OLH$RvzEbszM<}h&E1=2oo{4^T!+A_ZQe<(~Vv`U*d3#1?l&IZWdh1hdPX$@fVzNl`XO@QXVwgJvZ}rHLBM8VK zi*c8gMjQO5={N1(_J|`&L6OALjA_dYm%r2dPKz)4j7egd=1k?egpk5!6*^DXQtSjy z$}Oe0Z0g!17nya)esZhWdi#mn5n!yTT~qI=k7OaZ<-WK1UaYVz)37LWW6wqzj2397 z+~HSpwBdw;%;}p3mN>Z&LA<8$nnzk5kq0tp2O3t8k1h}bYPKs;%11RJRE?+R@m3yq zl9ywRxSh8a-g@V_J0YM?w>|yG)<4ScF^Oz({^F6=k;=WFgCa#c$9~QX+l)PdJ#v*z zuUy;*-{gPV|3@wbD&L6^+JfoNSX zSe3K*ru3U|wZu~L;}JiGc6zb%#YdYTg_p0M@EI&=(P^fz>F)BoSDaYUFZ9b!c^?aB zhllnRar3l;C9C757_?v~_^o4yQ zllS?Rzy9U*3EVIZlUzg&8WCjtHRXc`4{qDG4Ki9Co=k2z1layG^)^Aw9aZ%YtW@hg0?xtEw`nDJ)3CV!d?i!Tpq#Nn$a+D(# zq7~&rbZ1!FH~^i*-l!Y^22s$&;KV!2?)*-}cOqr{RD2cS@sBb37Fma!d}tP%A8dT^ z7UwNEZ!(yE*Yvx97>E=u^F@1(?VQf`PNUfvJ0b@1dcBl}Rp&?vRhpyQ?S`GA4Skgx znX0~&cG`v8ucnElY+@@)-*kRc@<~m-O)tOt@~&OG7M^p?=t;Af#um1aPX1lM%?~pm?kG>QxMgQ3%d!%)QJAT{z zTL8b(`HJj|85!lu0X*3`xzbjdbfD9j5lg{EfG{d0>ha5;aE*3URu4wI@6jYG`{w$t}WnJWM3G&-NCdScPuMXf?>ByG!`6uZSf z-7tN3Xt&?)mjyA4{h{>_Hx%C>=L;E!@$m_Y?EI|rm53-v$9|%yse5r#i|pl zHikFKRpBD*6?<3Ltlm4gcSy$=m>>!lW+y2#NZL*(F4S+SZYfK$D5tp%g1jDsQHv5{ z*N?bndz=S&hr*g4k^u z*d*B`*)>a-tEVGL2~R`>%hSqdIA^3jP~7(E(%hOxq!Wklu$?LkckkW}F+X?VxdLVO zdAjXh|j#6deoH=ub-nCcKX<_!g z((jd9%QeF!?Jboj6-jO3r+7GE5=?6T@s8wl(wgEmH@j|@pXhp{X+qD?#s}xx&rRC% z>CY&YP8gSXxSR_YE`)zOIH3Efkwo`Hk;+yugICnsD{m^jNdt366zQ4uNc9E^$$DvJ z{>nQ}+|lM}ix_xMv~UD2kI6n&n3{B;R7^usWIi3~PK||77ygjnYxK(ZiR@oT{A+B& zBB@GA@fmk2$Rr&o>AIGmV>2<|oWH7I)dNir$ePo~^A%YUul0uV8zwp@o{@o4fzbzu z3zM9M^p<_(hrq06t1a8c`q+%D8P^nE6Bqtd;1LUuRFR&sb->42Q?%x>mdCtKZ)77M zo^KlG7zgty4JNO7`78=AQXD9GXjNBNM{lgjH_Ns50=@SB@1y?RW{C44mT{BgM%&#l&CYrPklyPrKzZzQ5Z3ef#$g$S>5FSW8}= z{%Vn>Na9~t)6eKqRbcE61L_8B)6&xP*$mR@XMF>__4f9@^2#eSX3psGq~MW)1XHI@ z#nNbMYLYW=7OUUjziPx)7ZhHQsPKzEJg(Cxl|Lu_G?)How}2RJ)~nMA35PxmI#E8m zWn;E)jr`VkYrl(`{krPcqcTP@7TFX_zY}WuF!YHweYFA7>32c|0m8IBcarZHDvk0o zQpB)G7Qu2;@l85~djzPj1CtJ#6zojpt2FlV>-k^*dBe|Vr_WwpkZ@Diq@5&!Nu{4u z2GR_7YC(l;Hke>G=xKwb3l>XWe=)KYzEv(H+h3Y#eCgB%LUi%N@*jRR=d0?ZcG7{8 zZsbA(B}FC`(#5LcQ(z(F_r!@4<>lq(_!|a9T5WCZS!bQ41K@JG+S}XdwT(pW`0?Xa zRaH8i2GuaotXc6ZA*exjb#--(9jo0xMBQkUYqh=n*@&O10kBq*&Ion^PT$0ddf{Vh zYinL!p1w_m^RGW6SY`M!FuH0bmnsWeT3TLv?KRvvXU-f25B!9uI(P0|#p{D%->_lB z6<1uL0AN&LHhcDLMfUNtv$GSPkpgq%$Pv5U4pJ&GZ@&2^Y_RerIKb@Kv18`UnaW~^ zZh!gZmzOVJt^mNQ(Oy+bCm`$5qemAnUaY{-m&VnV30t;osjRG2zHAK`TBd3mz4X#c zOP4NH<_L!Z_?MNHDV?C(y?ggwbkRjhC-ezl+S!~=?%cT(EF3p(oB{*%fUP2$;LYaE zn=z0wE<9>5e#D3oN+*X79Rh{1;F_D8m@okY(HR zFc7^(OP}Gz6wp;^X({@_nF9w7;DDAF);iU9L6f5sdMy+<12^goDvkIAtB>0_(e+2b zrCE>|+7c>=lp)T4EQyOW9K;Tc!2-ldDq_PWXb<`xG~-{Y#-NxC z>^TjDzk`E=AQ?yi81%Vt;X=$0%)qjR1tl2tqaXt|qjM~LURma3k;+qMH=Z$$9hUsefXnGrnOGp@)G$Ws+ziZg$||D>t#Iy z-jv)KO$I&o!K2c<=8R4!anDG@Ujg_42mkzx?L+}kHFxHV*-k0J28JR2gYvtBTS zsWJISW#K6`ENZe4?x5iQhu0|jEpAOi^5U8=a+Bjuu(1A<+P^m@|JOckLogEv{4X}XG1Py% R0VV(d002ovPDHLkV1nDBT&Ms5 literal 0 HcmV?d00001 diff --git a/screenshots/jkqtplotter_simpletest_dateaxes_timeaxis.png b/screenshots/jkqtplotter_simpletest_dateaxes_timeaxis.png new file mode 100644 index 0000000000000000000000000000000000000000..daa408af8f8ac1a3adb889b6f2b4b1c530e42710 GIT binary patch literal 32648 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 Yo1RAyRzpUJiUfYiN-9Ydi|N1pALOh* date; + QVector temperature, temperature_min, temperature_max; + // parse a textfile with comments on the first line and the + // semicolon separated data. The first column is a date and time + // the second to fourth columns contain a floating-point number + // with temperature average, min and max + QFile file(":/weatherdata_gelsenkirchen.csv"); + file.open(QFile::ReadOnly|QFile::Text); + file.readLine(); // eat comment + while (!file.atEnd()) { + QString line=file.readLine(); + QTextStream in(&line); + QStringList items=line.split(";"); + // date/time values are stored as doubles representing the corresponding number of milliseconds sind epoch + date<addCopiedColumn(date, "date"); + graphTemperatureRange->set_xColumn(colDate); + graphTemperatureRange->set_yColumn(ds->addCopiedColumn(temperature_min, "temperature_min")); + graphTemperatureRange->set_yColumn2(ds->addCopiedColumn(temperature_max, "temperature_max")); + + + // 5. min/max range data + // graph fill color is a lighter shade of the average graph + graphTemperatureRange->set_fillColor(graphTemperature->get_color().lighter()); + // don't draw lines of the data + graphTemperatureRange->set_drawLine(false); + // plot label in key + graphTemperatureRange->set_title("Min/Max Temperature"); + // add the graph to the plot, so it is actually displayed + plot.addGraph(graphTemperatureRange); +``` + +On top of that plot, a second plot is added, which draws the average temperatures of each month as a line: + +```c++ + // 3. add a plot for the data mean line (graphTemperature) and range (graphTemperatureRange) + JKQTPxyLineErrorGraph* graphTemperature=new JKQTPxyLineErrorGraph(&plot); + + // 4. copy data into datastore and immediately set the yColumn + size_t colDate=ds->addCopiedColumn(date, "date"); + graphTemperature->set_xColumn(colDate); + graphTemperature->set_yColumn(ds->addCopiedColumn(temperature, "temperature")); + + + // 5. min/max range data + // .... see above + + // 6. average data + // don't use symbols + graphTemperature->set_symbol(JKQTPnoSymbol); + // set the line width + graphTemperature->set_lineWidth(1); + // draw small symbols + graphTemperature->set_symbolSize(6); + // graph title + graphTemperature->set_title("Average Temperature"); + // add the graph to the plot, so it is actually displayed + plot.addGraph(graphTemperature); +``` + +Finally the x-axis is formatted to display dates (see [Qt-Documentation of `QDateTime::toString()`](http://doc.qt.io/qt-5/qdatetime.html#toString) for details on the formating strings): +```c++ + // 7. format the plot + // set the title above the plot, use LaTeX instructions to make text bold + plot.get_plotter()->set_plotLabel("\\textbf{Weather in Gelsenkirchen, 2017-2018}"); + // set x-axis date-time-axis + plot.getXAxis()->set_labelType(JKQTPCALTdatetime); + plot.getXAxis()->set_axisLabel("Date"); + // set format string for date axis (e.g. Jan '18), see Documentation of QDateTime::toString() + plot.getXAxis()->set_tickDateTimeFormat("MMM ''yy"); + // set y-axis temperature axis + plot.getYAxis()->set_axisLabel("Average Daily Temperature [{\\degree}C]"); +``` + +The result looks like this: + +![jkqtplotter_simpletest_symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes.png) + + +### Time Axis +A second variant (see the example CPP-file) displays data with a time-axis: + +![jkqtplotter_simpletest_symbols_and_styles](https://raw.githubusercontent.com/jkriege2/JKQtPlotter/master/screenshots/jkqtplotter_simpletest_dateaxes_timeaxis.png) + + +For that example data-pasring is a bit different, because the file only contains times and no dates: +```c++ + // 2. now we create data vectors with data parsed from a CSV-file + QVector time; + QVector temperature; + // parse a textfile with comments on the first line and the + // semicolon separated data. The first column is a time + // the second contain a floating-point number with temperatures + QFile file(":/weatherdata_heidelberg_2018-10-14.csv"); + file.open(QFile::ReadOnly|QFile::Text); + file.readLine(); // eat comment + while (!file.atEnd()) { + QString line=file.readLine(); + QTextStream in(&line); + QStringList items=line.split(";"); + // date/time values are stored as doubles representing the corresponding + // number of milliseconds sind epoch. Since the data is time only, we have to use an arbitrary + // date as basis + time<set_plotLabel("\\textbf{Weather in Heidelberg, 14^{th} Oct 2018}"); + // set x-axis date-time-axis + plot.getXAxis()->set_labelType(JKQTPCALTtime); + plot.getXAxis()->set_axisLabel("Time of Day"); + // set format string for time axis with 24-hour and minute only, + // see QDateTime::toString() documentation for details on format strings + plot.getXAxis()->set_tickTimeFormat("HH:mm"); + // set y-axis temperature axis + plot.getYAxis()->set_axisLabel("Temperature [{\\degree}C]"); +``` + +[Back to JKQTPlotter main page](https://github.com/jkriege2/JKQtPlotter/) \ No newline at end of file diff --git a/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.cpp b/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.cpp new file mode 100644 index 0000000000..e650ac21af --- /dev/null +++ b/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.cpp @@ -0,0 +1,172 @@ +#include +#include +#include +#include +#include +#include "jkqtplotter/jkqtplotter.h" +#include "jkqtplotter/jkqtpgeoelements.h" +#include "jkqtplottertools/jkqtptools.h" + +void drawWithDateAxis(JKQtPlotter& plot) { + + // 1. create a plotter window and get a pointer to the internal datastore (for convenience) + JKQTPdatastore* ds=plot.getDatastore(); + + // 2. now we create data vectors with data parsed from a CSV-file + QVector date; + QVector temperature, temperature_min, temperature_max; + // parse a textfile with comments on the first line and the + // semicolon separated data. The first column is a date and time + // the second to fourth columns contain a floating-point number + // with temperature average, min and max + QFile file(":/weatherdata_gelsenkirchen.csv"); + file.open(QFile::ReadOnly|QFile::Text); + file.readLine(); // eat comment + while (!file.atEnd()) { + QString line=file.readLine(); + QTextStream in(&line); + QStringList items=line.split(";"); + // date/time values are stored as doubles representing the corresponding number of milliseconds sind epoch + date<addCopiedColumn(date, "date"); + graphTemperature->set_xColumn(colDate); + graphTemperature->set_yColumn(ds->addCopiedColumn(temperature, "temperature")); + graphTemperatureRange->set_xColumn(colDate); + graphTemperatureRange->set_yColumn(ds->addCopiedColumn(temperature_min, "temperature_min")); + graphTemperatureRange->set_yColumn2(ds->addCopiedColumn(temperature_max, "temperature_max")); + + + // 5. min/max range data + // graph fill color is a lighter shade of the average graph + graphTemperatureRange->set_fillColor(graphTemperature->get_color().lighter()); + // don't draw lines of the data + graphTemperatureRange->set_drawLine(false); + // plot label in key + graphTemperatureRange->set_title("Min/Max Temperature"); + // add the graph to the plot, so it is actually displayed + plot.addGraph(graphTemperatureRange); + + // 6. average data + // don't use symbols + graphTemperature->set_symbol(JKQTPnoSymbol); + // set the line width + graphTemperature->set_lineWidth(1); + // draw small symbols + graphTemperature->set_symbolSize(6); + // graph title + graphTemperature->set_title("Average Temperature"); + // add the graph to the plot, so it is actually displayed + plot.addGraph(graphTemperature); + + + // 7. format the plot + // set the title above the plot, use LaTeX instructions to make text bold + plot.get_plotter()->set_plotLabel("\\textbf{Weather in Gelsenkirchen, 2017-2018}"); + // set x-axis date-time-axis + plot.getXAxis()->set_labelType(JKQTPCALTdatetime); + plot.getXAxis()->set_axisLabel("Date"); + // set format string for date axis (e.g. Jan '18), see Documentation of QDateTime::toString() + plot.getXAxis()->set_tickDateTimeFormat("MMM ''yy"); + // set y-axis temperature axis + plot.getYAxis()->set_axisLabel("Average Daily Temperature [{\\degree}C]"); + + // 8. autoscale the plot so the graph is contained + plot.zoomToFit(); + + // 9. show plotter and make it a decent size + plot.show(); + plot.resize(600,400); + plot.setWindowTitle("Date Axis"); +} + +void drawWithTimeAxis(JKQtPlotter& plot) { + // 1. create a plotter window and get a pointer to the internal datastore (for convenience) + JKQTPdatastore* ds=plot.getDatastore(); + + // 2. now we create data vectors with data parsed from a CSV-file + QVector time; + QVector temperature; + // parse a textfile with comments on the first line and the + // semicolon separated data. The first column is a time + // the second contain a floating-point number with temperatures + QFile file(":/weatherdata_heidelberg_2018-10-14.csv"); + file.open(QFile::ReadOnly|QFile::Text); + file.readLine(); // eat comment + while (!file.atEnd()) { + QString line=file.readLine(); + QTextStream in(&line); + QStringList items=line.split(";"); + // date/time values are stored as doubles representing the corresponding + // number of milliseconds sind epoch. Since the data is time only, we have to use an arbitrary + // date as basis + time<addCopiedColumn(time, "time"); + graphTemperature->set_xColumn(colDate); + graphTemperature->set_yColumn(ds->addCopiedColumn(temperature, "temperature")); + + + // 6. average data + // don't use symbols + graphTemperature->set_symbol(JKQTPcross); + // set the line width + graphTemperature->set_lineWidth(1); + // draw small symbols + graphTemperature->set_symbolSize(6); + // graph title + graphTemperature->set_title("Average Temperature"); + // add the graph to the plot, so it is actually displayed + plot.addGraph(graphTemperature); + + + // 7. format the plot + // set the title above the plot, use LaTeX instructions to make text bold + plot.get_plotter()->set_plotLabel("\\textbf{Weather in Heidelberg, 14^{th} Oct 2018}"); + // set x-axis date-time-axis + plot.getXAxis()->set_labelType(JKQTPCALTtime); + plot.getXAxis()->set_axisLabel("Time of Day"); + // set format string for time axis with 24-hour and minute only, + // see QDateTime::toString() documentation for details on format strings + plot.getXAxis()->set_tickTimeFormat("HH:mm"); + // set y-axis temperature axis + plot.getYAxis()->set_axisLabel("Temperature [{\\degree}C]"); + + // 8. autoscale the plot so the graph is contained + plot.zoomToFit(); + + // 9. show plotter and make it a decent size + plot.show(); + plot.resize(600,400); + plot.setWindowTitle("Time Axis"); +} + +int main(int argc, char* argv[]) +{ + QApplication app(argc, argv); + JKQtPlotter plotDate; + drawWithDateAxis(plotDate); + plotDate.move(100,100); + JKQtPlotter plotTime; + drawWithTimeAxis(plotTime); + plotTime.move(100,550); + + return app.exec(); +} diff --git a/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.pro b/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.pro new file mode 100644 index 0000000000..85bb6ee6f3 --- /dev/null +++ b/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.pro @@ -0,0 +1,20 @@ +# source code for this simple demo +SOURCES = jkqtplotter_simpletest_dateaxes.cpp + +# configure Qt +CONFIG += qt +QT += core gui svg +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport + +# output executable name +TARGET = jkqtplotter_simpletest_dateaxes + +# include JKQtPlotter source code +include(../../lib/jkqtplotter.pri) + +# here you can activate some debug options +#DEFINES += SHOW_JKQTPLOTTER_DEBUG +#DEFINES += JKQTBP_AUTOTIMER + +RESOURCES += \ + jkqtplotter_simpletest_dateaxes.qrc diff --git a/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.qrc b/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.qrc new file mode 100644 index 0000000000..93bf12d449 --- /dev/null +++ b/test/jkqtplotter_simpletest_dateaxes/jkqtplotter_simpletest_dateaxes.qrc @@ -0,0 +1,7 @@ + + + weatherdata_gelsenkirchen.csv + weatherdata_heidelberg_2018-10-14.csv + weatherdata_heidelberg.csv + + diff --git a/test/jkqtplotter_simpletest_dateaxes/weatherdata_gelsenkirchen.csv b/test/jkqtplotter_simpletest_dateaxes/weatherdata_gelsenkirchen.csv new file mode 100644 index 0000000000..766bd02b6d --- /dev/null +++ b/test/jkqtplotter_simpletest_dateaxes/weatherdata_gelsenkirchen.csv @@ -0,0 +1,24 @@ +Datum;Zeit;Temp_mean[degC];Temp_min[degC];Temp_max[degC]; data from http://wetter.mpg-ge.de/NOAA/NOAA-2018.txt and http://wetter.mpg-ge.de/NOAA/NOAA-2017.txt +2017-01-15T12:00; 1.2; -1.2; 3.7 +2017-02-15T12:00; 5.6; 3.2; 8.1 +2017-03-15T12:00; 9.6; 6.2; 13.5 +2017-04-15T12:00; 8.9; 5.1; 12.9 +2017-05-15T12:00; 16.0; 11.4; 20.8 +2017-06-15T12:00; 19.2; 15.0; 23.5 +2017-07-15T12:00; 19.1; 15.2; 23.4 +2017-08-15T12:00; 18.5; 14.7; 22.5 +2017-09-15T12:00; 14.4; 11.4; 18.3 +2017-10-15T12:00; 13.1; 10.8; 16.0 +2017-11-15T12:00; 7.5; 5.6; 9.7 +2017-12-15T12:00; 4.2; 2.6; 5.9 +2018-01-15T12:00; 5.7; 3.7; 7.8 +2018-02-15T12:00; 0.4; -1.9; 3.2 +2018-03-15T12:00; 5.0; 1.5; 8.5 +2018-04-15T12:00; 14.3; 9.8; 18.9 +2018-05-15T12:00; 16.7; 12.3; 21.2 +2018-06-15T12:00; 18.3; 14.5; 22.7 +2018-07-15T12:00; 22.2; 16.4; 27.9 +2018-08-15T12:00; 20.5; 15.9; 25.6 +2018-09-15T12:00; 16.2; 12.1; 20.8 +2018-10-15T12:00; 13.0; 9.6; 17.0 +2018-11-15T12:00; 7.2; 4.8; 10.0 diff --git a/test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg.csv b/test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg.csv new file mode 100644 index 0000000000..7a345b510b --- /dev/null +++ b/test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg.csv @@ -0,0 +1,289 @@ +2018-10-14T00:00:00; 24.2 +2018-10-14T00:10:00; 24.2 +2018-10-14T00:20:00; 24.1 +2018-10-14T00:30:00; 24.1 +2018-10-14T00:40:00; 24.1 +2018-10-14T00:50:00; 24.0 +2018-10-14T01:00:00; 24.0 +2018-10-14T01:10:00; 24.0 +2018-10-14T01:20:00; 24.0 +2018-10-14T01:30:00; 24.0 +2018-10-14T01:40:00; 23.9 +2018-10-14T01:50:00; 23.9 +2018-10-14T02:00:00; 23.8 +2018-10-14T02:10:00; 23.8 +2018-10-14T02:20:00; 23.8 +2018-10-14T02:30:00; 23.8 +2018-10-14T02:40:00; 23.8 +2018-10-14T02:50:00; 23.7 +2018-10-14T03:00:00; 23.7 +2018-10-14T03:10:00; 23.7 +2018-10-14T03:20:00; 23.6 +2018-10-14T03:30:00; 23.6 +2018-10-14T03:40:00; 23.6 +2018-10-14T03:50:00; 23.6 +2018-10-14T04:00:00; 23.6 +2018-10-14T04:10:00; 23.6 +2018-10-14T04:20:00; 23.6 +2018-10-14T04:30:00; 23.6 +2018-10-14T04:40:00; 23.6 +2018-10-14T04:50:00; 23.5 +2018-10-14T05:00:00; 23.5 +2018-10-14T05:10:00; 23.5 +2018-10-14T05:20:00; 23.4 +2018-10-14T05:30:00; 23.4 +2018-10-14T05:40:00; 23.4 +2018-10-14T05:50:00; 23.4 +2018-10-14T06:00:00; 23.4 +2018-10-14T06:10:00; 23.4 +2018-10-14T06:20:00; 23.4 +2018-10-14T06:30:00; 23.4 +2018-10-14T06:40:00; 23.4 +2018-10-14T06:50:00; 23.4 +2018-10-14T07:00:00; 23.4 +2018-10-14T07:10:00; 23.4 +2018-10-14T07:20:00; 23.4 +2018-10-14T07:30:00; 23.4 +2018-10-14T07:40:00; 23.4 +2018-10-14T07:50:00; 23.4 +2018-10-14T08:00:00; 23.4 +2018-10-14T08:10:00; 23.3 +2018-10-14T08:20:00; 23.3 +2018-10-14T08:30:00; 23.2 +2018-10-14T08:40:00; 23.2 +2018-10-14T08:50:00; 23.2 +2018-10-14T09:00:00; 23.1 +2018-10-14T09:10:00; 23.1 +2018-10-14T09:20:00; 23.0 +2018-10-14T09:30:00; 23.0 +2018-10-14T09:40:00; 23.0 +2018-10-14T09:50:00; 23.1 +2018-10-14T10:00:00; 23.1 +2018-10-14T10:10:00; 23.2 +2018-10-14T10:20:00; 23.2 +2018-10-14T10:30:00; 23.3 +2018-10-14T10:40:00; 23.4 +2018-10-14T10:50:00; 23.5 +2018-10-14T11:00:00; 23.6 +2018-10-14T11:10:00; 23.8 +2018-10-14T11:20:00; 24.0 +2018-10-14T11:30:00; 24.3 +2018-10-14T11:40:00; 24.6 +2018-10-14T11:50:00; 24.9 +2018-10-14T12:00:00; 25.3 +2018-10-14T12:10:00; 25.6 +2018-10-14T12:20:00; 25.8 +2018-10-14T12:30:00; 25.8 +2018-10-14T12:40:00; 25.8 +2018-10-14T12:50:00; 25.8 +2018-10-14T13:00:00; 25.8 +2018-10-14T13:10:00; 25.9 +2018-10-14T13:20:00; 26.1 +2018-10-14T13:30:00; 26.3 +2018-10-14T13:40:00; 26.5 +2018-10-14T13:50:00; 26.6 +2018-10-14T14:00:00; 26.8 +2018-10-14T14:10:00; 26.9 +2018-10-14T14:20:00; 27.0 +2018-10-14T14:30:00; 27.2 +2018-10-14T14:40:00; 27.2 +2018-10-14T14:50:00; 27.4 +2018-10-14T15:00:00; 27.4 +2018-10-14T15:10:00; 27.4 +2018-10-14T15:20:00; 27.4 +2018-10-14T15:30:00; 27.5 +2018-10-14T15:40:00; 27.5 +2018-10-14T15:50:00; 27.5 +2018-10-14T16:00:00; 27.5 +2018-10-14T16:10:00; 27.4 +2018-10-14T16:20:00; 27.3 +2018-10-14T16:30:00; 27.0 +2018-10-14T16:40:00; 26.8 +2018-10-14T16:50:00; 26.0 +2018-10-14T17:00:00; 25.5 +2018-10-14T17:10:00; 25.3 +2018-10-14T17:20:00; 25.1 +2018-10-14T17:30:00; 24.9 +2018-10-14T17:40:00; 24.7 +2018-10-14T17:50:00; 24.5 +2018-10-14T18:00:00; 24.3 +2018-10-14T18:10:00; 24.2 +2018-10-14T18:20:00; 24.1 +2018-10-14T18:30:00; 24.0 +2018-10-14T18:40:00; 23.8 +2018-10-14T18:50:00; 23.8 +2018-10-14T19:00:00; 23.7 +2018-10-14T19:10:00; 23.6 +2018-10-14T19:20:00; 23.6 +2018-10-14T19:30:00; 23.4 +2018-10-14T19:40:00; 23.2 +2018-10-14T19:50:00; 23.2 +2018-10-14T20:00:00; 23.1 +2018-10-14T20:10:00; 23.0 +2018-10-14T20:20:00; 23.4 +2018-10-14T20:30:00; 24.0 +2018-10-14T20:40:00; 24.5 +2018-10-14T20:50:00; 24.8 +2018-10-14T21:00:00; 25.1 +2018-10-14T21:10:00; 25.4 +2018-10-14T21:20:00; 25.6 +2018-10-14T21:30:00; 25.6 +2018-10-14T21:40:00; 25.8 +2018-10-14T21:50:00; 25.9 +2018-10-14T22:00:00; 25.9 +2018-10-14T22:10:00; 26.0 +2018-10-14T22:20:00; 26.0 +2018-10-14T22:30:00; 26.0 +2018-10-14T22:40:00; 26.0 +2018-10-14T22:50:00; 26.0 +2018-10-14T23:00:00; 26.0 +2018-10-14T23:10:00; 26.0 +2018-10-14T23:20:00; 26.0 +2018-10-14T23:30:00; 26.0 +2018-10-14T23:40:00; 25.8 +2018-10-14T23:50:00; 25.6 +2018-10-15T00:00:00; 25.4 +2018-10-15T00:10:00; 25.2 +2018-10-15T00:20:00; 25.0 +2018-10-15T00:30:00; 24.9 +2018-10-15T00:40:00; 24.8 +2018-10-15T00:50:00; 24.6 +2018-10-15T01:00:00; 24.5 +2018-10-15T01:10:00; 24.4 +2018-10-15T01:20:00; 24.4 +2018-10-15T01:30:00; 24.3 +2018-10-15T01:40:00; 24.2 +2018-10-15T01:50:00; 24.2 +2018-10-15T02:00:00; 24.1 +2018-10-15T02:10:00; 24.0 +2018-10-15T02:20:00; 24.0 +2018-10-15T02:30:00; 23.9 +2018-10-15T02:40:00; 23.8 +2018-10-15T02:50:00; 23.8 +2018-10-15T03:00:00; 23.7 +2018-10-15T03:10:00; 23.7 +2018-10-15T03:20:00; 23.6 +2018-10-15T03:30:00; 23.6 +2018-10-15T03:40:00; 23.5 +2018-10-15T03:50:00; 23.5 +2018-10-15T04:00:00; 23.4 +2018-10-15T04:10:00; 23.4 +2018-10-15T04:20:00; 23.4 +2018-10-15T04:30:00; 23.3 +2018-10-15T04:40:00; 23.2 +2018-10-15T04:50:00; 23.2 +2018-10-15T05:00:00; 23.2 +2018-10-15T05:10:00; 23.1 +2018-10-15T05:20:00; 23.2 +2018-10-15T05:30:00; 23.1 +2018-10-15T05:39:00; 23.1 +2018-10-15T05:40:00; 23.1 +2018-10-15T05:50:00; 23.1 +2018-10-15T06:00:00; 23.1 +2018-10-15T06:10:00; 23.1 +2018-10-15T06:20:00; 23.0 +2018-10-15T06:30:00; 23.0 +2018-10-15T06:40:00; 23.0 +2018-10-15T06:50:00; 23.0 +2018-10-15T07:00:00; 23.0 +2018-10-15T07:10:00; 23.0 +2018-10-15T07:20:00; 23.0 +2018-10-15T07:30:00; 22.9 +2018-10-15T07:40:00; 22.9 +2018-10-15T07:50:00; 22.9 +2018-10-15T08:00:00; 22.9 +2018-10-15T08:10:00; 22.8 +2018-10-15T08:20:00; 22.8 +2018-10-15T08:30:00; 22.8 +2018-10-15T08:40:00; 22.8 +2018-10-15T08:50:00; 22.8 +2018-10-15T09:00:00; 22.8 +2018-10-15T09:10:00; 22.8 +2018-10-15T09:20:00; 22.8 +2018-10-15T09:30:00; 22.8 +2018-10-15T09:40:00; 22.8 +2018-10-15T09:50:00; 22.8 +2018-10-15T10:00:00; 22.6 +2018-10-15T10:10:00; 22.3 +2018-10-15T10:20:00; 22.1 +2018-10-15T10:30:00; 21.9 +2018-10-15T10:40:00; 21.8 +2018-10-15T10:50:00; 22.0 +2018-10-15T11:00:00; 22.4 +2018-10-15T11:10:00; 22.6 +2018-10-15T11:20:00; 23.0 +2018-10-15T11:30:00; 23.4 +2018-10-15T11:40:00; 23.8 +2018-10-15T11:50:00; 24.2 +2018-10-15T12:00:00; 24.4 +2018-10-15T12:10:00; 24.8 +2018-10-15T12:20:00; 25.0 +2018-10-15T12:30:00; 25.2 +2018-10-15T12:40:00; 25.3 +2018-10-15T12:50:00; 25.4 +2018-10-15T13:00:00; 25.5 +2018-10-15T13:10:00; 25.7 +2018-10-15T13:20:00; 26.0 +2018-10-15T13:30:00; 26.4 +2018-10-15T13:40:00; 26.6 +2018-10-15T13:50:00; 26.9 +2018-10-15T14:00:00; 27.1 +2018-10-15T14:10:00; 27.3 +2018-10-15T14:20:00; 27.3 +2018-10-15T14:30:00; 27.5 +2018-10-15T14:40:00; 27.6 +2018-10-15T14:50:00; 27.7 +2018-10-15T15:00:00; 27.8 +2018-10-15T15:10:00; 27.9 +2018-10-15T15:20:00; 28.0 +2018-10-15T15:30:00; 28.0 +2018-10-15T15:40:00; 28.0 +2018-10-15T15:50:00; 28.1 +2018-10-15T16:00:00; 28.2 +2018-10-15T16:10:00; 28.0 +2018-10-15T16:20:00; 28.0 +2018-10-15T16:30:00; 27.8 +2018-10-15T16:40:00; 27.6 +2018-10-15T16:50:00; 27.4 +2018-10-15T17:00:00; 27.2 +2018-10-15T17:10:00; 27.0 +2018-10-15T17:20:00; 26.8 +2018-10-15T17:30:00; 26.7 +2018-10-15T17:40:00; 26.6 +2018-10-15T17:50:00; 26.4 +2018-10-15T18:00:00; 26.3 +2018-10-15T18:10:00; 26.2 +2018-10-15T18:20:00; 26.1 +2018-10-15T18:30:00; 26.0 +2018-10-15T18:40:00; 25.9 +2018-10-15T18:50:00; 25.8 +2018-10-15T19:00:00; 25.7 +2018-10-15T19:10:00; 25.6 +2018-10-15T19:20:00; 25.5 +2018-10-15T19:30:00; 25.4 +2018-10-15T19:40:00; 25.4 +2018-10-15T19:50:00; 25.3 +2018-10-15T20:00:00; 25.2 +2018-10-15T20:10:00; 25.0 +2018-10-15T20:20:00; 24.9 +2018-10-15T20:30:00; 24.8 +2018-10-15T20:40:00; 24.7 +2018-10-15T20:50:00; 24.6 +2018-10-15T21:00:00; 24.5 +2018-10-15T21:10:00; 24.4 +2018-10-15T21:20:00; 24.4 +2018-10-15T21:30:00; 24.3 +2018-10-15T21:40:00; 24.3 +2018-10-15T21:50:00; 24.2 +2018-10-15T22:00:00; 24.2 +2018-10-15T22:10:00; 24.1 +2018-10-15T22:20:00; 24.1 +2018-10-15T22:30:00; 24.0 +2018-10-15T22:40:00; 24.0 +2018-10-15T22:50:00; 24.0 +2018-10-15T23:00:00; 23.9 +2018-10-15T23:10:00; 23.9 +2018-10-15T23:20:00; 23.8 +2018-10-15T23:30:00; 23.8 +2018-10-15T23:40:00; 23.8 +2018-10-15T23:50:00; 23.7 diff --git a/test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg_2018-10-14.csv b/test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg_2018-10-14.csv new file mode 100644 index 0000000000..c5b32aafa6 --- /dev/null +++ b/test/jkqtplotter_simpletest_dateaxes/weatherdata_heidelberg_2018-10-14.csv @@ -0,0 +1,145 @@ +Time; Temperature [degC] +00:00:00; 24.2 +00:10:00; 24.2 +00:20:00; 24.1 +00:30:00; 24.1 +00:40:00; 24.1 +00:50:00; 24.0 +01:00:00; 24.0 +01:10:00; 24.0 +01:20:00; 24.0 +01:30:00; 24.0 +01:40:00; 23.9 +01:50:00; 23.9 +02:00:00; 23.8 +02:10:00; 23.8 +02:20:00; 23.8 +02:30:00; 23.8 +02:40:00; 23.8 +02:50:00; 23.7 +03:00:00; 23.7 +03:10:00; 23.7 +03:20:00; 23.6 +03:30:00; 23.6 +03:40:00; 23.6 +03:50:00; 23.6 +04:00:00; 23.6 +04:10:00; 23.6 +04:20:00; 23.6 +04:30:00; 23.6 +04:40:00; 23.6 +04:50:00; 23.5 +05:00:00; 23.5 +05:10:00; 23.5 +05:20:00; 23.4 +05:30:00; 23.4 +05:40:00; 23.4 +05:50:00; 23.4 +06:00:00; 23.4 +06:10:00; 23.4 +06:20:00; 23.4 +06:30:00; 23.4 +06:40:00; 23.4 +06:50:00; 23.4 +07:00:00; 23.4 +07:10:00; 23.4 +07:20:00; 23.4 +07:30:00; 23.4 +07:40:00; 23.4 +07:50:00; 23.4 +08:00:00; 23.4 +08:10:00; 23.3 +08:20:00; 23.3 +08:30:00; 23.2 +08:40:00; 23.2 +08:50:00; 23.2 +09:00:00; 23.1 +09:10:00; 23.1 +09:20:00; 23.0 +09:30:00; 23.0 +09:40:00; 23.0 +09:50:00; 23.1 +10:00:00; 23.1 +10:10:00; 23.2 +10:20:00; 23.2 +10:30:00; 23.3 +10:40:00; 23.4 +10:50:00; 23.5 +11:00:00; 23.6 +11:10:00; 23.8 +11:20:00; 24.0 +11:30:00; 24.3 +11:40:00; 24.6 +11:50:00; 24.9 +12:00:00; 25.3 +12:10:00; 25.6 +12:20:00; 25.8 +12:30:00; 25.8 +12:40:00; 25.8 +12:50:00; 25.8 +13:00:00; 25.8 +13:10:00; 25.9 +13:20:00; 26.1 +13:30:00; 26.3 +13:40:00; 26.5 +13:50:00; 26.6 +14:00:00; 26.8 +14:10:00; 26.9 +14:20:00; 27.0 +14:30:00; 27.2 +14:40:00; 27.2 +14:50:00; 27.4 +15:00:00; 27.4 +15:10:00; 27.4 +15:20:00; 27.4 +15:30:00; 27.5 +15:40:00; 27.5 +15:50:00; 27.5 +16:00:00; 27.5 +16:10:00; 27.4 +16:20:00; 27.3 +16:30:00; 27.0 +16:40:00; 26.8 +16:50:00; 26.0 +17:00:00; 25.5 +17:10:00; 25.3 +17:20:00; 25.1 +17:30:00; 24.9 +17:40:00; 24.7 +17:50:00; 24.5 +18:00:00; 24.3 +18:10:00; 24.2 +18:20:00; 24.1 +18:30:00; 24.0 +18:40:00; 23.8 +18:50:00; 23.8 +19:00:00; 23.7 +19:10:00; 23.6 +19:20:00; 23.6 +19:30:00; 23.4 +19:40:00; 23.2 +19:50:00; 23.2 +20:00:00; 23.1 +20:10:00; 23.0 +20:20:00; 23.4 +20:30:00; 24.0 +20:40:00; 24.5 +20:50:00; 24.8 +21:00:00; 25.1 +21:10:00; 25.4 +21:20:00; 25.6 +21:30:00; 25.6 +21:40:00; 25.8 +21:50:00; 25.9 +22:00:00; 25.9 +22:10:00; 26.0 +22:20:00; 26.0 +22:30:00; 26.0 +22:40:00; 26.0 +22:50:00; 26.0 +23:00:00; 26.0 +23:10:00; 26.0 +23:20:00; 26.0 +23:30:00; 26.0 +23:40:00; 25.8 +23:50:00; 25.6