MCPcopy Create free account
hub / github.com/KDE/labplot / showOverview

Method showOverview

src/frontend/spreadsheet/StatisticsColumnWidget.cpp:196–251  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

194}
195
196void StatisticsColumnWidget::showOverview() {
197 const Column::ColumnStatistics& statistics = m_column->statistics();
198
199 if (m_column->isNumeric()) {
200 m_teOverview->setHtml(m_htmlOverview
201 .arg(QString::number(statistics.size),
202 isNanValue(statistics.minimum == INFINITY ? NAN : statistics.minimum),
203 isNanValue(statistics.maximum == -INFINITY ? NAN : statistics.maximum),
204 isNanValue(statistics.arithmeticMean),
205 isNanValue(statistics.geometricMean),
206 isNanValue(statistics.harmonicMean),
207 isNanValue(statistics.contraharmonicMean),
208 modeValue(m_column, statistics.mode),
209 isNanValue(statistics.firstQuartile))
210 .arg(isNanValue(statistics.median),
211 isNanValue(statistics.thirdQuartile),
212 isNanValue(statistics.trimean),
213 isNanValue(statistics.maximum - statistics.minimum),
214 isNanValue(statistics.variance),
215 isNanValue(statistics.standardDeviation),
216 isNanValue(statistics.meanDeviation),
217 isNanValue(statistics.meanDeviationAroundMedian),
218 isNanValue(statistics.medianDeviation),
219 isNanValue(statistics.iqr))
220 .arg(isNanValue(statistics.skewness), isNanValue(statistics.kurtosis), isNanValue(statistics.entropy)));
221 } else if (m_column->columnMode() == AbstractColumn::ColumnMode::Text) {
222 // add the frequencies table
223 const auto& frequencies = m_column->frequencies();
224 const QString htmlColor = GuiTools::isDarkMode() ? QStringLiteral("#5f5f5f") : QStringLiteral("#D1D1D1");
225 m_htmlOverview += QStringLiteral("<br><table border=0 width=100%>") + QStringLiteral("<tr>") + QStringLiteral("<td colspan=3 align=center bgcolor=")
226 + htmlColor + QStringLiteral("><b><big>") + i18n("Frequency Table") + QStringLiteral("</big><b></td>") + QStringLiteral("</tr>")
227 + QStringLiteral("<tr>") + QStringLiteral("<td width=60%></td>") + QStringLiteral("<td>") + i18n("Frequency") + QStringLiteral("</td>")
228 + QStringLiteral("<td>") + i18n("Percent") + QStringLiteral("</td>") + QStringLiteral("</tr>");
229
230 auto i = frequencies.constBegin();
231 while (i != frequencies.constEnd()) {
232 int count = i.value();
233 double percent = (double)count / statistics.size * 100;
234 m_htmlOverview += QStringLiteral("<tr>") + QStringLiteral("<td>") + i.key() + QStringLiteral("</td>") + QStringLiteral("<td>")
235 + QString::number(count) + QStringLiteral("</td>") + QStringLiteral("<td>") + QString::number(percent) + QStringLiteral("%</td>")
236 + QStringLiteral("</tr>");
237 ++i;
238 }
239
240 m_htmlOverview += QStringLiteral("</table>");
241 m_teOverview->setHtml(m_htmlOverview.arg(QString::number(statistics.size), QString::number(statistics.unique)));
242 } else { // datetime
243 auto* filter = static_cast<DateTime2StringFilter*>(m_column->outputFilter());
244 m_teOverview->setHtml(m_htmlOverview.arg(QString::number(statistics.size),
245 QDateTime::fromMSecsSinceEpoch(statistics.minimum).toString(filter->format()),
246 QDateTime::fromMSecsSinceEpoch(statistics.maximum).toString(filter->format())));
247 }
248
249 showOverviewPlot();
250 m_overviewInitialized = true;
251}
252
253void StatisticsColumnWidget::showOverviewPlot() {

Callers

nothing calls this directly

Calls 9

statisticsMethod · 0.80
setHtmlMethod · 0.80
argMethod · 0.80
isNumericMethod · 0.45
columnModeMethod · 0.45
valueMethod · 0.45
outputFilterMethod · 0.45
toStringMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected