MNE-CPP  0.1.9
A Framework for Electrophysiology
lineplot.cpp
Go to the documentation of this file.
1 //=============================================================================================================
36 //=============================================================================================================
37 // INCLUDES
38 //=============================================================================================================
39 
40 #include "lineplot.h"
41 
42 //=============================================================================================================
43 // QT INCLUDES
44 //=============================================================================================================
45 
46 //=============================================================================================================
47 // EIGEN INCLUDES
48 //=============================================================================================================
49 
50 //=============================================================================================================
51 // USED NAMESPACES
52 //=============================================================================================================
53 
54 using namespace DISPLIB;
55 using namespace Eigen;
56 using namespace QtCharts;
57 
58 //=============================================================================================================
59 // DEFINE MEMBER METHODS
60 //=============================================================================================================
61 
62 LinePlot::LinePlot(QWidget *parent)
63 : QChartView(parent)
64 , m_pLineSeries(Q_NULLPTR)
65 , m_pChart(Q_NULLPTR)
66 {
67  update();
68 }
69 
70 //=============================================================================================================
71 
72 LinePlot::LinePlot(const QVector<double> &y,
73  const QString& title,
74  QWidget *parent)
75 : QChartView(parent)
76 , m_sTitle(title)
77 , m_pLineSeries(Q_NULLPTR)
78 , m_pChart(Q_NULLPTR)
79 {
80  updateData(y);
81 }
82 
83 //=============================================================================================================
84 
85 LinePlot::LinePlot(const QVector<double> &x,
86  const QVector<double> &y,
87  const QString& title,
88  QWidget *parent)
89 : QChartView(parent)
90 , m_sTitle(title)
91 , m_pLineSeries(Q_NULLPTR)
92 , m_pChart(Q_NULLPTR)
93 {
94  updateData(x, y);
95 }
96 
97 //=============================================================================================================
98 
100 {
101 }
102 
103 //=============================================================================================================
104 
105 void LinePlot::setTitle(const QString &p_sTitle)
106 {
107  m_sTitle = p_sTitle;
108  update();
109 }
110 
111 //=============================================================================================================
112 
113 void LinePlot::setXLabel(const QString &p_sXLabel)
114 {
115  m_sXLabel = p_sXLabel;
116  update();
117 }
118 
119 //=============================================================================================================
120 
121 void LinePlot::setYLabel(const QString &p_sYLabel)
122 {
123  m_sYLabel = p_sYLabel;
124  update();
125 }
126 
127 //=============================================================================================================
128 
129 void LinePlot::updateData(const QVector<double> &y)
130 {
131  QVector<double> x(y.size());
132 
133  for(int i = 0; i < x.size(); ++i) {
134  x[i] = i;
135  }
136 
137  return updateData(x, y);
138 }
139 
140 //=============================================================================================================
141 
142 void LinePlot::updateData(const QVector<double> &x,
143  const QVector<double> &y)
144 {
145  if(!m_pLineSeries) {
146  m_pLineSeries = new QLineSeries;
147  }
148  else {
149  m_pLineSeries->clear();
150  }
151 
152  for(int i = 0; i < x.size(); ++i) {
153  m_pLineSeries->append(x[i], y[i]);
154  }
155 
156  if(!m_pChart) {
157  m_pChart = new QChart;
158  }
159  else {
160  m_pChart->removeAllSeries();
161  }
162 
163  m_pChart->legend()->hide();
164  m_pChart->addSeries(m_pLineSeries);
165  m_pChart->createDefaultAxes();
166 
167  update();
168 }
169 
170 //=============================================================================================================
171 
172 void LinePlot::update()
173 {
174  if(!m_pChart)
175  return;
176 
177  m_pChart->setTitle(m_sTitle);
178 
179  this->setChart(m_pChart);
180  this->setRenderHint(QPainter::Antialiasing);
181  this->setWindowTitle(m_sTitle);
182 }
void setYLabel(const QString &p_sYLabel)
Definition: lineplot.cpp:121
void setTitle(const QString &p_sTitle)
Definition: lineplot.cpp:105
LinePlot(QWidget *parent=Q_NULLPTR)
Definition: lineplot.cpp:62
void updateData(const QVector< double > &y)
Definition: lineplot.cpp:129
void setXLabel(const QString &p_sXLabel)
Definition: lineplot.cpp:113
virtual ~LinePlot()
Definition: lineplot.cpp:99
LinePlot class declaration.