From ab346eba79f77eab3f8c3e27e33ca25a6283f0f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Wed, 30 May 2018 15:43:35 +0200 Subject: [PATCH] [apps/regression] Display all the non empty regression series --- apps/regression/graph_view.cpp | 28 ++++++++++++++++------------ apps/regression/graph_view.h | 1 - 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/apps/regression/graph_view.cpp b/apps/regression/graph_view.cpp index ae70ba10d..6088ab40e 100644 --- a/apps/regression/graph_view.cpp +++ b/apps/regression/graph_view.cpp @@ -9,8 +9,7 @@ GraphView::GraphView(Store * store, CurveViewCursor * cursor, BannerView * banne CurveView(store, cursor, bannerView, cursorView), m_store(store), m_xLabels{}, - m_yLabels{}, - m_series(0) //TODO + m_yLabels{} { } @@ -21,17 +20,22 @@ void GraphView::drawRect(KDContext * ctx, KDRect rect) const { drawAxes(ctx, rect, Axis::Vertical); drawLabels(ctx, rect, Axis::Horizontal, true); drawLabels(ctx, rect, Axis::Vertical, true); - float regressionParameters[2] = {(float)m_store->slope(m_series), (float)m_store->yIntercept(m_series)}; - drawCurve(ctx, rect, [](float abscissa, void * model, void * context) { - float * params = (float *)model; - return params[0]*abscissa+params[1]; - }, - regressionParameters, nullptr, Palette::YellowDark); - for (int index = 0; index < m_store->numberOfPairs(); index++) { - drawDot(ctx, rect, m_store->get(m_series, 0,index), m_store->get(m_series, 1,index), Palette::Red); + for (int series = 0; series < Store::k_numberOfSeries; series++) { + if (!m_store->seriesIsEmpty(series)) { + KDColor color = Palette::DataColor[series]; + float regressionParameters[2] = {(float)m_store->slope(series), (float)m_store->yIntercept(series)}; + drawCurve(ctx, rect, [](float abscissa, void * model, void * context) { + float * params = (float *)model; + return params[0]*abscissa+params[1]; + }, + regressionParameters, nullptr, color); + for (int index = 0; index < m_store->numberOfPairsOfSeries(series); index++) { + drawDot(ctx, rect, m_store->get(series, 0, index), m_store->get(series, 1, index), color); + } + drawDot(ctx, rect, m_store->meanOfColumn(series, 0), m_store->meanOfColumn(series, 1), color, true); + drawDot(ctx, rect, m_store->meanOfColumn(series, 0), m_store->meanOfColumn(series, 1), KDColorWhite); + } } - drawDot(ctx, rect, m_store->meanOfColumn(m_series, 0), m_store->meanOfColumn(m_series, 1), Palette::Palette::YellowDark, true); - drawDot(ctx, rect, m_store->meanOfColumn(m_series, 0), m_store->meanOfColumn(m_series, 1), KDColorWhite); } char * GraphView::label(Axis axis, int index) const { diff --git a/apps/regression/graph_view.h b/apps/regression/graph_view.h index 76eebff34..de60b5e91 100644 --- a/apps/regression/graph_view.h +++ b/apps/regression/graph_view.h @@ -17,7 +17,6 @@ private: Store * m_store; char m_xLabels[k_maxNumberOfXLabels][Poincare::PrintFloat::bufferSizeForFloatsWithPrecision(Constant::ShortNumberOfSignificantDigits)]; char m_yLabels[k_maxNumberOfYLabels][Poincare::PrintFloat::bufferSizeForFloatsWithPrecision(Constant::ShortNumberOfSignificantDigits)]; - int m_series; }; }