135 std::shared_ptr<std::map<double, MapTrace>> double_map_trace_map_sp,
143 throw PappsoException(QString(
"The color to be used for the plot graph is invalid."));
145 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
147 color_map_p->setLayer(
"plotsLayer");
157 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
159 color_map_p->data()->setSize(50, 50);
160 color_map_p->data()->setRange(QCPRange(0, 2), QCPRange(0, 2));
161 for(
int x = 0;
x < 50; ++
x)
162 for(
int y = 0;
y < 50; ++
y)
163 color_map_p->data()->setCell(
x,
y, qCos(
x / 10.0) + qSin(
y / 10.0));
164 color_map_p->setGradient(QCPColorGradient::gpPolar);
165 color_map_p->rescaleDataRange(
true);
182 static_cast<void (QCPAbstractPlottable::*)(
bool)
>(&QCPAbstractPlottable::selectionChanged),
183 [
this, color_map_p]() {
190 color_map_p->data()->setSize(color_map_plot_config.
keyCellCount,
193 color_map_p->data()->setRange(
196 color_map_p->data()->fill(0.0);
200 for(
auto &&pair : *double_map_trace_map_sp)
207 double dt_or_rt_key = pair.first;
210 for(
auto &&data_point_pair : map_trace)
212 double mz = data_point_pair.first;
213 double intensity = data_point_pair.second;
220 double prev_intensity = color_map_p->data()->data(dt_or_rt_key, mz);
221 double new_intensity = prev_intensity + intensity;
237 color_map_p->data()->setData(dt_or_rt_key, mz, new_intensity);
245 color_map_p->setGradient(QCPColorGradient::gpThermal);
247 color_map_p->rescaleDataRange(
true);
249 color_map_p->rescaleAxes();
255 QPen pen = xAxis->basePen();
258 xAxis->setBasePen(pen);
259 xAxis->setLabelColor(color);
260 xAxis->setTickLabelColor(color);
262 yAxis->setBasePen(pen);
263 yAxis->setLabelColor(color);
264 yAxis->setTickLabelColor(color);
270 color_map_p->setPen(pen);
288 throw PappsoException(QString(
"The color to be used for the plot graph is invalid."));
290 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
292 color_map_p->setLayer(
"plotsLayer");
303 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
305 color_map_p->data()->setSize(50, 50);
306 color_map_p->data()->setRange(QCPRange(0, 2), QCPRange(0, 2));
307 for(
int x = 0;
x < 50; ++
x)
308 for(
int y = 0;
y < 50; ++
y)
309 color_map_p->data()->setCell(
x,
y, qCos(
x / 10.0) + qSin(
y / 10.0));
310 color_map_p->setGradient(QCPColorGradient::gpPolar);
311 color_map_p->rescaleDataRange(
true);
329 static_cast<void (QCPAbstractPlottable::*)(
bool)
>(&QCPAbstractPlottable::selectionChanged),
330 [
this, color_map_p]() {
337 color_map_p->data()->setSize(color_map_plot_config.
keyCellCount,
340 color_map_p->data()->setRange(
343 color_map_p->data()->fill(0.0);
348 for(std::size_t i = 0; i < number_of_scans; i++)
358 double dt_or_rt_key = i;
359 std::size_t vector_index = 0;
360 for(quint32 mzindex : tof_index_vector)
363 double intensity = intensity_index_vector.at(vector_index);
370 double prev_intensity = color_map_p->data()->data(dt_or_rt_key, mz);
371 double new_intensity = prev_intensity + intensity;
389 color_map_p->data()->setCell(dt_or_rt_key, mz, new_intensity);
402 color_map_p->setGradient(QCPColorGradient::gpThermal);
404 color_map_p->data()->recalculateDataBounds();
405 color_map_p->rescaleDataRange(
true);
407 color_map_p->rescaleAxes();
414 QPen pen = xAxis->basePen();
417 xAxis->setBasePen(pen);
418 xAxis->setLabelColor(color);
419 xAxis->setTickLabelColor(color);
421 yAxis->setBasePen(pen);
422 yAxis->setLabelColor(color);
423 yAxis->setTickLabelColor(color);
429 color_map_p->setPen(pen);
435 color_map_p->setInterpolate(
false);
436 color_map_p->setTightBoundary(
false);
441 qDebug() << color_map_p->data()->keyRange();
442 qDebug() << color_map_p->data()->valueRange();
443 qDebug() << color_map_p->data()->dataBounds();
453 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
455 QCPColorMapData *origData = color_map_p->data();
457 int keySize = origData->keySize();
458 int valueSize = origData->valueSize();
463 QCPRange keyRange = origData->keyRange();
464 QCPRange valueRange = origData->valueRange();
470 QCPColorMapData *newData =
new QCPColorMapData(valueSize, keySize, valueRange, keyRange);
472 for(
int iter = 0; iter < keySize; ++iter)
474 for(
int jter = 0; jter < valueSize; ++jter)
476 double cellData = origData->cell(iter, jter);
478 newData->setCell(jter, iter, cellData);
487 color_map_p->data()->clear();
488 color_map_p->rescaleDataRange(
true);
496 QString temp_axis_label = xAxis->label();
497 xAxis->setLabel(yAxis->label());
498 yAxis->setLabel(temp_axis_label);
501 color_map_p->setData(newData);
513 color_map_p->rescaleAxes();
529 qDebug() <<
"Asking to change z axis scale to log10 while it is already "
537 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
539 QCPColorMapData *map_data = color_map_p->data();
541 int keySize = map_data->keySize();
542 int valueSize = map_data->valueSize();
544 QCPRange keyRange = map_data->keyRange();
545 QCPRange valueRange = map_data->valueRange();
561 QCPColorMapData *new_map_data =
new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
565 for(
int iter = 0; iter < keySize; ++iter)
567 for(
int jter = 0; jter < valueSize; ++jter)
569 double cell_data = map_data->cell(iter, jter);
571 double new_cell_data = 0;
579 new_cell_data = std::log10(cell_data);
587 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
593 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
602 new_map_data->setCell(iter, jter, new_cell_data);
608 color_map_p->data()->clear();
611 color_map_p->setData(new_map_data);
613 color_map_p->data()->recalculateDataBounds();
614 color_map_p->rescaleDataRange(
true);
645 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
647 QCPColorMapData *map_data = color_map_p->data();
649 int keySize = map_data->keySize();
650 int valueSize = map_data->valueSize();
652 QCPRange keyRange = map_data->keyRange();
653 QCPRange valueRange = map_data->valueRange();
658 double amplitude = maxZValue - minZValue;
660 double amplitude_fraction = amplitude * threshold_percentage / 100;
662 double threshold = minZValue + amplitude_fraction;
675 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
676 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
679 QCPColorMapData *new_map_data =
new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
681 for(
int iter = 0; iter < keySize; ++iter)
683 for(
int jter = 0; jter < valueSize; ++jter)
685 double cell_data = map_data->cell(iter, jter);
687 double new_cell_data = 0;
689 if(cell_data < threshold)
691 new_cell_data = cell_data;
693 new_cell_data = threshold;
700 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
706 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
715 new_map_data->setCell(iter, jter, new_cell_data);
719 color_map_p->data()->clear();
722 color_map_p->setData(new_map_data);
724 color_map_p->data()->recalculateDataBounds();
725 color_map_p->rescaleDataRange(
true);
752 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
754 QCPColorMapData *map_data = color_map_p->data();
756 int keySize = map_data->keySize();
757 int valueSize = map_data->valueSize();
759 QCPRange keyRange = map_data->keyRange();
760 QCPRange valueRange = map_data->valueRange();
773 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
774 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
777 QCPColorMapData *new_map_data =
new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
779 for(
int iter = 0; iter < keySize; ++iter)
781 for(
int jter = 0; jter < valueSize; ++jter)
783 double cell_data = map_data->cell(iter, jter);
785 double new_cell_data = 0;
787 if(cell_data < threshold)
789 new_cell_data = cell_data;
791 new_cell_data = threshold;
798 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
804 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
813 new_map_data->setCell(iter, jter, new_cell_data);
817 color_map_p->data()->clear();
820 color_map_p->setData(new_map_data);
822 color_map_p->data()->recalculateDataBounds();
823 color_map_p->rescaleDataRange(
true);
851 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
853 QCPColorMapData *map_data = color_map_p->data();
855 int keySize = map_data->keySize();
856 int valueSize = map_data->valueSize();
858 QCPRange keyRange = map_data->keyRange();
859 QCPRange valueRange = map_data->valueRange();
864 double amplitude = maxZValue - minZValue;
866 double amplitude_fraction = amplitude * threshold_percentage / 100;
868 double threshold = minZValue + amplitude_fraction;
881 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
882 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
885 QCPColorMapData *new_map_data =
new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
887 for(
int iter = 0; iter < keySize; ++iter)
889 for(
int jter = 0; jter < valueSize; ++jter)
891 double cell_data = map_data->cell(iter, jter);
893 double new_cell_data = 0;
895 if(cell_data > threshold)
897 new_cell_data = cell_data;
899 new_cell_data = threshold;
906 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
912 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
921 new_map_data->setCell(iter, jter, new_cell_data);
925 color_map_p->data()->clear();
928 color_map_p->setData(new_map_data);
930 color_map_p->data()->recalculateDataBounds();
931 color_map_p->rescaleDataRange(
true);
1042 Q_UNUSED(plottable_p);
1047 QPen pen = xAxis->basePen();
1048 pen.setColor(new_color);
1050 xAxis->setBasePen(pen);
1051 xAxis->setLabelColor(new_color);
1052 xAxis->setTickLabelColor(new_color);
1054 yAxis->setBasePen(pen);
1055 yAxis->setLabelColor(new_color);
1056 yAxis->setTickLabelColor(new_color);
1062 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1064 color_map_p->setPen(pen);
1085 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1086 QCPColorMapData *map_data = color_map_p->data();
1088 bool found_range =
false;
1092 QCPRange full_data_range = color_map_p->getKeyRange(found_range);
1096 qDebug() <<
"The range was not found";
1106 double visible_data_range_lower =
m_context.m_xRange.lower;
1107 double visible_data_range_upper =
m_context.m_xRange.upper;
1117 if(!visible_data_range_lower || !visible_data_range_upper)
1119 visible_data_range_lower = full_data_range.lower;
1120 visible_data_range_upper = full_data_range.upper;
1129 map_data->coordToCell(visible_data_range_lower, 0, &lower,
nullptr);
1130 map_data->coordToCell(visible_data_range_upper, 0, &upper,
nullptr);
1142 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1143 QCPColorMapData *map_data = color_map_p->data();
1145 bool found_range =
false;
1149 QCPRange full_data_range = color_map_p->getValueRange(found_range);
1153 qDebug() <<
"The range was not found";
1163 double visible_data_range_lower =
m_context.m_yRange.lower;
1164 double visible_data_range_upper =
m_context.m_yRange.upper;
1174 if(!visible_data_range_lower || !visible_data_range_upper)
1176 visible_data_range_lower = full_data_range.lower;
1177 visible_data_range_upper = full_data_range.upper;
1186 map_data->coordToCell(0, visible_data_range_lower,
nullptr, &lower);
1187 map_data->coordToCell(0, visible_data_range_upper,
nullptr, &upper);
1203 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1204 QCPColorMapData *map_data = color_map_p->data();
1206 int key_index_lower_range;
1207 int key_index_upper_range;
1213 int value_index_lower_range;
1214 int value_index_upper_range;
1220 data_string.clear();
1221 QString debug_string;
1224 for(
int key_iter = key_index_lower_range; key_iter < key_index_upper_range; ++key_iter)
1227 for(
int value_iter = value_index_lower_range; value_iter < value_index_upper_range;
1236 map_data->cellToCoord(key_iter, value_iter, &key, &value);
1238 data_string += QString(
"%1 %2 %3\n")
1239 .arg(key, 0,
'f', 6,
' ')
1240 .arg(value, 0,
'f', 6,
' ')
1242 .arg(map_data->cell(key_iter, value_iter), 0,
'f', 0,
' ');
1259 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
1260 QCPColorMapData *map_data = color_map_p->data();
1262 int key_index_lower_range;
1263 int key_index_upper_range;
1269 int value_index_lower_range;
1270 int value_index_upper_range;
1276 data_string.clear();
1281 for(
int key_iter = key_index_lower_range; key_iter < key_index_upper_range; ++key_iter)
1283 double current_key_value;
1284 map_data->cellToCoord(key_iter, 0, ¤t_key_value,
nullptr);
1286 data_string += QString(
"%1 ").arg(current_key_value, 0,
'f', 6,
' ');
1290 data_string +=
"\n";
1314 for(
int value_iter = value_index_upper_range; value_iter >= value_index_lower_range; --value_iter)
1317 for(
int key_iter = key_index_lower_range; key_iter < key_index_upper_range; ++key_iter)
1319 double intensity = map_data->cell(key_iter, value_iter);
1323 double value_double;
1324 map_data->cellToCoord(key_iter, value_iter, &key_double, &value_double);
1332 data_string += QString(
"%1/%2/%3 ")
1333 .arg(key_double, 0,
'f', 6,
' ')
1334 .arg(value_double, 0,
'f', 6,
' ')
1337 data_string += QString(
"%1 ").arg(intensity, 0,
'f', 0,
' ');
1340 data_string +=
"\n";
1347 data_string +=
"\n";