36 #include "../../trace/maptrace.h"
37 #include "../../pappsoexception.h"
45 const QString &x_axis_label,
46 const QString &y_axis_label)
104 std::shared_ptr<std::map<double, MapTrace>> double_map_trace_map_sp,
113 QString(
"The color to be used for the plot graph is invalid."));
115 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
117 color_map_p->setLayer(
"plotsLayer");
127 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
129 color_map_p->data()->setSize(50, 50);
130 color_map_p->data()->setRange(QCPRange(0, 2), QCPRange(0, 2));
131 for(
int x = 0;
x < 50; ++
x)
132 for(
int y = 0;
y < 50; ++
y)
133 color_map_p->data()->setCell(
x,
y, qCos(
x / 10.0) + qSin(
y / 10.0));
134 color_map_p->setGradient(QCPColorGradient::gpPolar);
135 color_map_p->rescaleDataRange(
true);
151 static_cast<void (QCPAbstractPlottable::*)(
bool)
>(
152 &QCPAbstractPlottable::selectionChanged),
153 [
this, color_map_p]() {
155 color_map_p->selected());
161 color_map_p->data()->setSize(color_map_plot_config.
keyCellCount,
164 color_map_p->data()->setRange(QCPRange(color_map_plot_config.
minKeyValue,
168 color_map_p->data()->fill(0.0);
172 for(
auto &&pair : *double_map_trace_map_sp)
179 double dt_or_rt_key = pair.first;
182 for(
auto &&data_point_pair : map_trace)
184 double mz = data_point_pair.first;
185 double intensity = data_point_pair.second;
192 double prev_intensity = color_map_p->data()->data(dt_or_rt_key,
mz);
193 double new_intensity = prev_intensity + intensity;
204 color_map_p->data()->setData(dt_or_rt_key,
mz, new_intensity);
212 color_map_p->setGradient(QCPColorGradient::gpThermal);
214 color_map_p->rescaleDataRange(
true);
216 color_map_p->rescaleAxes();
222 QPen pen = xAxis->basePen();
225 xAxis->setBasePen(pen);
226 xAxis->setLabelColor(color);
227 xAxis->setTickLabelColor(color);
229 yAxis->setBasePen(pen);
230 yAxis->setLabelColor(color);
231 yAxis->setTickLabelColor(color);
237 color_map_p->setPen(pen);
254 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
256 QCPColorMapData *origData = color_map_p->data();
258 int keySize = origData->keySize();
259 int valueSize = origData->valueSize();
264 QCPRange keyRange = origData->keyRange();
265 QCPRange valueRange = origData->valueRange();
271 QCPColorMapData *newData =
272 new QCPColorMapData(valueSize, keySize, valueRange, keyRange);
274 for(
int iter = 0; iter < keySize; ++iter)
276 for(
int jter = 0; jter < valueSize; ++jter)
278 double cellData = origData->cell(iter, jter);
280 newData->setCell(jter, iter, cellData);
289 color_map_p->data()->clear();
290 color_map_p->rescaleDataRange(
true);
298 QString temp_axis_label = xAxis->label();
299 xAxis->setLabel(yAxis->label());
300 yAxis->setLabel(temp_axis_label);
303 color_map_p->setData(newData);
315 color_map_p->rescaleAxes();
328 qDebug() <<
"Asking to change z axis scale to log10 while it is already "
336 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
338 QCPColorMapData *map_data = color_map_p->data();
340 int keySize = map_data->keySize();
341 int valueSize = map_data->valueSize();
343 QCPRange keyRange = map_data->keyRange();
344 QCPRange valueRange = map_data->valueRange();
352 new_color_map_plot_config.
minZValue = std::numeric_limits<double>::max();
353 new_color_map_plot_config.
maxZValue = std::numeric_limits<double>::min();
359 QCPColorMapData *new_map_data =
360 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
364 for(
int iter = 0; iter < keySize; ++iter)
366 for(
int jter = 0; jter < valueSize; ++jter)
368 double cell_data = map_data->cell(iter, jter);
370 double new_cell_data = 0;
378 new_cell_data = std::log10(cell_data);
385 std::min(new_color_map_plot_config.
minZValue, new_cell_data);
391 std::max(new_color_map_plot_config.
maxZValue, new_cell_data);
400 new_map_data->setCell(iter, jter, new_cell_data);
406 color_map_p->data()->clear();
409 color_map_p->setData(new_map_data);
411 color_map_p->data()->recalculateDataBounds();
412 color_map_p->rescaleDataRange(
true);
437 double threshold_percentage)
442 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
444 QCPColorMapData *map_data = color_map_p->data();
446 int keySize = map_data->keySize();
447 int valueSize = map_data->valueSize();
449 QCPRange keyRange = map_data->keyRange();
450 QCPRange valueRange = map_data->valueRange();
456 <<
"threshold:" << threshold;
464 new_color_map_plot_config.
minZValue = std::numeric_limits<double>::max();
465 new_color_map_plot_config.
maxZValue = std::numeric_limits<double>::min();
468 QCPColorMapData *new_map_data =
469 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
471 for(
int iter = 0; iter < keySize; ++iter)
473 for(
int jter = 0; jter < valueSize; ++jter)
475 double cell_data = map_data->cell(iter, jter);
477 double new_cell_data = 0;
479 if(cell_data > threshold)
480 new_cell_data = threshold;
482 new_cell_data = cell_data;
489 std::min(new_color_map_plot_config.
minZValue, new_cell_data);
495 std::max(new_color_map_plot_config.
maxZValue, new_cell_data);
504 new_map_data->setCell(iter, jter, new_cell_data);
508 color_map_p->data()->clear();
511 color_map_p->setData(new_map_data);
513 color_map_p->data()->recalculateDataBounds();
514 color_map_p->rescaleDataRange(
true);
531 double threshold_percentage)
536 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
538 QCPColorMapData *map_data = color_map_p->data();
540 int keySize = map_data->keySize();
541 int valueSize = map_data->valueSize();
543 QCPRange keyRange = map_data->keyRange();
544 QCPRange valueRange = map_data->valueRange();
550 <<
"threshold:" << threshold;
558 new_color_map_plot_config.
minZValue = std::numeric_limits<double>::max();
559 new_color_map_plot_config.
maxZValue = std::numeric_limits<double>::min();
561 qDebug() <<
"new_color_map_plot_config"
562 << new_color_map_plot_config.
toString();
565 QCPColorMapData *new_map_data =
566 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
568 for(
int iter = 0; iter < keySize; ++iter)
570 for(
int jter = 0; jter < valueSize; ++jter)
572 double cell_data = map_data->cell(iter, jter);
574 double new_cell_data = 0;
576 if(cell_data < threshold)
577 new_cell_data = threshold;
579 new_cell_data = cell_data;
586 std::min(new_color_map_plot_config.
minZValue, new_cell_data);
592 std::max(new_color_map_plot_config.
maxZValue, new_cell_data);
601 new_map_data->setCell(iter, jter, new_cell_data);
605 color_map_p->data()->clear();
608 color_map_p->setData(new_map_data);
610 color_map_p->data()->recalculateDataBounds();
611 color_map_p->rescaleDataRange(
true);
613 qDebug() <<
"new_color_map_plot_config"
614 << new_color_map_plot_config.
toString();
635 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
636 color_map_p->data()->clear();
640 "Not possible that the mpa_backupColorMapData pointer is null."));
647 color_map_p->data()->recalculateDataBounds();
648 color_map_p->rescaleDataRange(
true);
686 QString(
"basecolormapplotwidget.cpp: The axis cannot be different than "
716 const QColor &new_color)
718 Q_UNUSED(plottable_p);
723 QPen pen = xAxis->basePen();
724 pen.setColor(new_color);
726 xAxis->setBasePen(pen);
727 xAxis->setLabelColor(new_color);
728 xAxis->setTickLabelColor(new_color);
730 yAxis->setBasePen(pen);
731 yAxis->setLabelColor(new_color);
732 yAxis->setTickLabelColor(new_color);
738 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
740 color_map_p->setPen(pen);
751 QPen pen = xAxis->basePen();
764 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
766 QCPColorMapData *map_data = color_map_p->data();
768 int keySize = map_data->keySize();
769 int valueSize = map_data->valueSize();
773 for(
int iter = 0; iter < keySize; ++iter)
775 for(
int jter = 0; jter < valueSize; ++jter)
777 text += QString(
"%1 %2 %3\n")
778 .arg(iter, 0,
'f', 6,
' ')
779 .arg(jter, 0,
'f', 6,
' ')
780 .arg(map_data->cell(iter, jter), 0,
'f', 6,
' ');
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...