137 std::shared_ptr<std::map<double, MapTrace>> double_map_trace_map_sp,
146 QString(
"The color to be used for the plot graph is invalid."));
148 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
150 color_map_p->setLayer(
"plotsLayer");
160 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
162 color_map_p->data()->setSize(50, 50);
163 color_map_p->data()->setRange(QCPRange(0, 2), QCPRange(0, 2));
164 for(
int x = 0;
x < 50; ++
x)
165 for(
int y = 0;
y < 50; ++
y)
166 color_map_p->data()->setCell(
x,
y, qCos(
x / 10.0) + qSin(
y / 10.0));
167 color_map_p->setGradient(QCPColorGradient::gpPolar);
168 color_map_p->rescaleDataRange(
true);
184 static_cast<void (QCPAbstractPlottable::*)(
bool)
>(
185 &QCPAbstractPlottable::selectionChanged),
186 [
this, color_map_p]() {
188 color_map_p->selected());
194 color_map_p->data()->setSize(color_map_plot_config.
keyCellCount,
197 color_map_p->data()->setRange(QCPRange(color_map_plot_config.
minKeyValue,
201 color_map_p->data()->fill(0.0);
205 for(
auto &&pair : *double_map_trace_map_sp)
212 double dt_or_rt_key = pair.first;
215 for(
auto &&data_point_pair : map_trace)
217 double mz = data_point_pair.first;
218 double intensity = data_point_pair.second;
225 double prev_intensity = color_map_p->data()->data(dt_or_rt_key,
mz);
226 double new_intensity = prev_intensity + intensity;
242 color_map_p->data()->setData(dt_or_rt_key,
mz, new_intensity);
250 color_map_p->setGradient(QCPColorGradient::gpThermal);
252 color_map_p->rescaleDataRange(
true);
254 color_map_p->rescaleAxes();
260 QPen pen = xAxis->basePen();
263 xAxis->setBasePen(pen);
264 xAxis->setLabelColor(color);
265 xAxis->setTickLabelColor(color);
267 yAxis->setBasePen(pen);
268 yAxis->setLabelColor(color);
269 yAxis->setTickLabelColor(color);
275 color_map_p->setPen(pen);
295 QString(
"The color to be used for the plot graph is invalid."));
297 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
299 color_map_p->setLayer(
"plotsLayer");
310 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
312 color_map_p->data()->setSize(50, 50);
313 color_map_p->data()->setRange(QCPRange(0, 2), QCPRange(0, 2));
314 for(
int x = 0;
x < 50; ++
x)
315 for(
int y = 0;
y < 50; ++
y)
316 color_map_p->data()->setCell(
x,
y, qCos(
x / 10.0) + qSin(
y / 10.0));
317 color_map_p->setGradient(QCPColorGradient::gpPolar);
318 color_map_p->rescaleDataRange(
true);
335 static_cast<void (QCPAbstractPlottable::*)(
bool)
>(
336 &QCPAbstractPlottable::selectionChanged),
337 [
this, color_map_p]() {
339 color_map_p->selected());
345 color_map_p->data()->setSize(color_map_plot_config.
keyCellCount,
348 color_map_p->data()->setRange(QCPRange(color_map_plot_config.
minKeyValue,
352 color_map_p->data()->fill(0.0);
357 for(std::size_t i = 0; i < number_of_scans; i++)
360 std::vector<quint32> intensity_index_vector =
368 double dt_or_rt_key = i;
369 std::size_t vector_index = 0;
370 for(quint32 mzindex : tof_index_vector)
373 double intensity = intensity_index_vector.at(vector_index);
380 double prev_intensity = color_map_p->data()->data(dt_or_rt_key,
mz);
381 double new_intensity = prev_intensity + intensity;
399 color_map_p->data()->setCell(dt_or_rt_key,
mz, new_intensity);
412 color_map_p->setGradient(QCPColorGradient::gpThermal);
414 color_map_p->data()->recalculateDataBounds();
415 color_map_p->rescaleDataRange(
true);
417 color_map_p->rescaleAxes();
424 QPen pen = xAxis->basePen();
427 xAxis->setBasePen(pen);
428 xAxis->setLabelColor(color);
429 xAxis->setTickLabelColor(color);
431 yAxis->setBasePen(pen);
432 yAxis->setLabelColor(color);
433 yAxis->setTickLabelColor(color);
439 color_map_p->setPen(pen);
445 color_map_p->setInterpolate(
false);
446 color_map_p->setTightBoundary(
false);
451 qDebug() << color_map_p->data()->keyRange();
452 qDebug() << color_map_p->data()->valueRange();
453 qDebug() << color_map_p->data()->dataBounds();
463 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
465 QCPColorMapData *origData = color_map_p->data();
467 int keySize = origData->keySize();
468 int valueSize = origData->valueSize();
473 QCPRange keyRange = origData->keyRange();
474 QCPRange valueRange = origData->valueRange();
480 QCPColorMapData *newData =
481 new QCPColorMapData(valueSize, keySize, valueRange, keyRange);
483 for(
int iter = 0; iter < keySize; ++iter)
485 for(
int jter = 0; jter < valueSize; ++jter)
487 double cellData = origData->cell(iter, jter);
489 newData->setCell(jter, iter, cellData);
498 color_map_p->data()->clear();
499 color_map_p->rescaleDataRange(
true);
507 QString temp_axis_label = xAxis->label();
508 xAxis->setLabel(yAxis->label());
509 yAxis->setLabel(temp_axis_label);
512 color_map_p->setData(newData);
524 color_map_p->rescaleAxes();
540 qDebug() <<
"Asking to change z axis scale to log10 while it is already "
548 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
550 QCPColorMapData *map_data = color_map_p->data();
552 int keySize = map_data->keySize();
553 int valueSize = map_data->valueSize();
555 QCPRange keyRange = map_data->keyRange();
556 QCPRange valueRange = map_data->valueRange();
565 std::numeric_limits<double>::max());
568 std::numeric_limits<double>::min());
574 QCPColorMapData *new_map_data =
575 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
579 for(
int iter = 0; iter < keySize; ++iter)
581 for(
int jter = 0; jter < valueSize; ++jter)
583 double cell_data = map_data->cell(iter, jter);
585 double new_cell_data = 0;
593 new_cell_data = std::log10(cell_data);
601 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
607 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
616 new_map_data->setCell(iter, jter, new_cell_data);
622 color_map_p->data()->clear();
625 color_map_p->setData(new_map_data);
627 color_map_p->data()->recalculateDataBounds();
628 color_map_p->rescaleDataRange(
true);
652 double threshold_percentage)
660 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
662 QCPColorMapData *map_data = color_map_p->data();
664 int keySize = map_data->keySize();
665 int valueSize = map_data->valueSize();
667 QCPRange keyRange = map_data->keyRange();
668 QCPRange valueRange = map_data->valueRange();
673 double amplitude = maxZValue - minZValue;
675 double amplitude_fraction = amplitude * threshold_percentage / 100;
677 double threshold = minZValue + amplitude_fraction;
690 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
691 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
694 QCPColorMapData *new_map_data =
695 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
697 for(
int iter = 0; iter < keySize; ++iter)
699 for(
int jter = 0; jter < valueSize; ++jter)
701 double cell_data = map_data->cell(iter, jter);
703 double new_cell_data = 0;
705 if(cell_data < threshold)
707 new_cell_data = cell_data;
709 new_cell_data = threshold;
716 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
722 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
731 new_map_data->setCell(iter, jter, new_cell_data);
735 color_map_p->data()->clear();
738 color_map_p->setData(new_map_data);
740 color_map_p->data()->recalculateDataBounds();
741 color_map_p->rescaleDataRange(
true);
768 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
770 QCPColorMapData *map_data = color_map_p->data();
772 int keySize = map_data->keySize();
773 int valueSize = map_data->valueSize();
775 QCPRange keyRange = map_data->keyRange();
776 QCPRange valueRange = map_data->valueRange();
789 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
790 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
793 QCPColorMapData *new_map_data =
794 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
796 for(
int iter = 0; iter < keySize; ++iter)
798 for(
int jter = 0; jter < valueSize; ++jter)
800 double cell_data = map_data->cell(iter, jter);
802 double new_cell_data = 0;
804 if(cell_data < threshold)
806 new_cell_data = cell_data;
808 new_cell_data = threshold;
815 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
821 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
830 new_map_data->setCell(iter, jter, new_cell_data);
834 color_map_p->data()->clear();
837 color_map_p->setData(new_map_data);
839 color_map_p->data()->recalculateDataBounds();
840 color_map_p->rescaleDataRange(
true);
860 double threshold_percentage)
869 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
871 QCPColorMapData *map_data = color_map_p->data();
873 int keySize = map_data->keySize();
874 int valueSize = map_data->valueSize();
876 QCPRange keyRange = map_data->keyRange();
877 QCPRange valueRange = map_data->valueRange();
882 double amplitude = maxZValue - minZValue;
884 double amplitude_fraction = amplitude * threshold_percentage / 100;
886 double threshold = minZValue + amplitude_fraction;
899 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
900 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
903 QCPColorMapData *new_map_data =
904 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
906 for(
int iter = 0; iter < keySize; ++iter)
908 for(
int jter = 0; jter < valueSize; ++jter)
910 double cell_data = map_data->cell(iter, jter);
912 double new_cell_data = 0;
914 if(cell_data > threshold)
916 new_cell_data = cell_data;
918 new_cell_data = threshold;
925 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
931 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
940 new_map_data->setCell(iter, jter, new_cell_data);
944 color_map_p->data()->clear();
947 color_map_p->setData(new_map_data);
949 color_map_p->data()->recalculateDataBounds();
950 color_map_p->rescaleDataRange(
true);
1061 const QColor &new_color)
1063 Q_UNUSED(plottable_p);
1068 QPen pen = xAxis->basePen();
1069 pen.setColor(new_color);
1071 xAxis->setBasePen(pen);
1072 xAxis->setLabelColor(new_color);
1073 xAxis->setTickLabelColor(new_color);
1075 yAxis->setBasePen(pen);
1076 yAxis->setLabelColor(new_color);
1077 yAxis->setTickLabelColor(new_color);
1083 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1085 color_map_p->setPen(pen);
1106 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1107 QCPColorMapData *map_data = color_map_p->data();
1109 bool found_range =
false;
1113 QCPRange full_data_range = color_map_p->getKeyRange(found_range);
1117 qDebug() <<
"The range was not found";
1138 if(!visible_data_range_lower || !visible_data_range_upper)
1140 visible_data_range_lower = full_data_range.lower;
1141 visible_data_range_upper = full_data_range.upper;
1150 map_data->coordToCell(visible_data_range_lower, 0, &lower,
nullptr);
1151 map_data->coordToCell(visible_data_range_upper, 0, &upper,
nullptr);
1163 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1164 QCPColorMapData *map_data = color_map_p->data();
1166 bool found_range =
false;
1170 QCPRange full_data_range = color_map_p->getValueRange(found_range);
1174 qDebug() <<
"The range was not found";
1195 if(!visible_data_range_lower || !visible_data_range_upper)
1197 visible_data_range_lower = full_data_range.lower;
1198 visible_data_range_upper = full_data_range.upper;
1207 map_data->coordToCell(0, visible_data_range_lower,
nullptr, &lower);
1208 map_data->coordToCell(0, visible_data_range_upper,
nullptr, &upper);
1224 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1225 QCPColorMapData *map_data = color_map_p->data();
1227 int key_index_lower_range;
1228 int key_index_upper_range;
1234 int value_index_lower_range;
1235 int value_index_upper_range;
1241 data_string.clear();
1242 QString debug_string;
1245 for(
int key_iter = key_index_lower_range; key_iter < key_index_upper_range;
1249 for(
int value_iter = value_index_lower_range;
1250 value_iter < value_index_upper_range;
1259 map_data->cellToCoord(key_iter, value_iter, &key, &value);
1262 QString(
"%1 %2 %3\n")
1263 .arg(key, 0,
'f', 6,
' ')
1264 .arg(value, 0,
'f', 6,
' ')
1266 .arg(map_data->cell(key_iter, value_iter), 0,
'f', 0,
' ');
1283 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1284 QCPColorMapData *map_data = color_map_p->data();
1286 int key_index_lower_range;
1287 int key_index_upper_range;
1293 int value_index_lower_range;
1294 int value_index_upper_range;
1300 data_string.clear();
1305 for(
int key_iter = key_index_lower_range; key_iter < key_index_upper_range;
1308 double current_key_value;
1309 map_data->cellToCoord(key_iter, 0, ¤t_key_value,
nullptr);
1311 data_string += QString(
"%1 ").arg(current_key_value, 0,
'f', 6,
' ');
1315 data_string +=
"\n";
1339 for(
int value_iter = value_index_upper_range;
1340 value_iter >= value_index_lower_range;
1344 for(
int key_iter = key_index_lower_range;
1345 key_iter < key_index_upper_range;
1348 double intensity = map_data->cell(key_iter, value_iter);
1352 double value_double;
1353 map_data->cellToCoord(
1354 key_iter, value_iter, &key_double, &value_double);
1362 data_string += QString(
"%1/%2/%3 ")
1363 .arg(key_double, 0,
'f', 6,
' ')
1364 .arg(value_double, 0,
'f', 6,
' ')
1367 data_string += QString(
"%1 ").arg(intensity, 0,
'f', 0,
' ');
1370 data_string +=
"\n";
1377 data_string +=
"\n";