36 #include "../../trace/maptrace.h"
37 #include "../../pappsoexception.h"
45 const QString &x_axis_label,
46 const QString &y_axis_label)
112 std::shared_ptr<std::map<double, MapTrace>> double_map_trace_map_sp,
121 QString(
"The color to be used for the plot graph is invalid."));
123 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
125 color_map_p->setLayer(
"plotsLayer");
135 QCPColorMap *color_map_p =
new QCPColorMap(xAxis, yAxis);
137 color_map_p->data()->setSize(50, 50);
138 color_map_p->data()->setRange(QCPRange(0, 2), QCPRange(0, 2));
139 for(
int x = 0;
x < 50; ++
x)
140 for(
int y = 0;
y < 50; ++
y)
141 color_map_p->data()->setCell(
x,
y, qCos(
x / 10.0) + qSin(
y / 10.0));
142 color_map_p->setGradient(QCPColorGradient::gpPolar);
143 color_map_p->rescaleDataRange(
true);
159 static_cast<void (QCPAbstractPlottable::*)(
bool)
>(
160 &QCPAbstractPlottable::selectionChanged),
161 [
this, color_map_p]() {
163 color_map_p->selected());
169 color_map_p->data()->setSize(color_map_plot_config.
keyCellCount,
172 color_map_p->data()->setRange(QCPRange(color_map_plot_config.
minKeyValue,
176 color_map_p->data()->fill(0.0);
180 for(
auto &&pair : *double_map_trace_map_sp)
187 double dt_or_rt_key = pair.first;
190 for(
auto &&data_point_pair : map_trace)
192 double mz = data_point_pair.first;
193 double intensity = data_point_pair.second;
200 double prev_intensity = color_map_p->data()->data(dt_or_rt_key,
mz);
201 double new_intensity = prev_intensity + intensity;
217 color_map_p->data()->setData(dt_or_rt_key,
mz, new_intensity);
225 color_map_p->setGradient(QCPColorGradient::gpThermal);
227 color_map_p->rescaleDataRange(
true);
229 color_map_p->rescaleAxes();
235 QPen pen = xAxis->basePen();
238 xAxis->setBasePen(pen);
239 xAxis->setLabelColor(color);
240 xAxis->setTickLabelColor(color);
242 yAxis->setBasePen(pen);
243 yAxis->setLabelColor(color);
244 yAxis->setTickLabelColor(color);
250 color_map_p->setPen(pen);
267 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
269 QCPColorMapData *origData = color_map_p->data();
271 int keySize = origData->keySize();
272 int valueSize = origData->valueSize();
277 QCPRange keyRange = origData->keyRange();
278 QCPRange valueRange = origData->valueRange();
284 QCPColorMapData *newData =
285 new QCPColorMapData(valueSize, keySize, valueRange, keyRange);
287 for(
int iter = 0; iter < keySize; ++iter)
289 for(
int jter = 0; jter < valueSize; ++jter)
291 double cellData = origData->cell(iter, jter);
293 newData->setCell(jter, iter, cellData);
302 color_map_p->data()->clear();
303 color_map_p->rescaleDataRange(
true);
311 QString temp_axis_label = xAxis->label();
312 xAxis->setLabel(yAxis->label());
313 yAxis->setLabel(temp_axis_label);
316 color_map_p->setData(newData);
328 color_map_p->rescaleAxes();
344 qDebug() <<
"Asking to change z axis scale to log10 while it is already "
352 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
354 QCPColorMapData *map_data = color_map_p->data();
356 int keySize = map_data->keySize();
357 int valueSize = map_data->valueSize();
359 QCPRange keyRange = map_data->keyRange();
360 QCPRange valueRange = map_data->valueRange();
369 std::numeric_limits<double>::max());
372 std::numeric_limits<double>::min());
378 QCPColorMapData *new_map_data =
379 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
383 for(
int iter = 0; iter < keySize; ++iter)
385 for(
int jter = 0; jter < valueSize; ++jter)
387 double cell_data = map_data->cell(iter, jter);
389 double new_cell_data = 0;
397 new_cell_data = std::log10(cell_data);
405 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
411 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
420 new_map_data->setCell(iter, jter, new_cell_data);
426 color_map_p->data()->clear();
429 color_map_p->setData(new_map_data);
431 color_map_p->data()->recalculateDataBounds();
432 color_map_p->rescaleDataRange(
true);
456 double threshold_percentage)
464 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
466 QCPColorMapData *map_data = color_map_p->data();
468 int keySize = map_data->keySize();
469 int valueSize = map_data->valueSize();
471 QCPRange keyRange = map_data->keyRange();
472 QCPRange valueRange = map_data->valueRange();
477 double amplitude = maxZValue - minZValue;
479 double amplitude_fraction = amplitude * threshold_percentage / 100;
481 double threshold = minZValue + amplitude_fraction;
494 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
495 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
498 QCPColorMapData *new_map_data =
499 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
501 for(
int iter = 0; iter < keySize; ++iter)
503 for(
int jter = 0; jter < valueSize; ++jter)
505 double cell_data = map_data->cell(iter, jter);
507 double new_cell_data = 0;
509 if(cell_data < threshold)
511 new_cell_data = cell_data;
513 new_cell_data = threshold;
520 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
526 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
535 new_map_data->setCell(iter, jter, new_cell_data);
539 color_map_p->data()->clear();
542 color_map_p->setData(new_map_data);
544 color_map_p->data()->recalculateDataBounds();
545 color_map_p->rescaleDataRange(
true);
566 double threshold_percentage)
575 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
577 QCPColorMapData *map_data = color_map_p->data();
579 int keySize = map_data->keySize();
580 int valueSize = map_data->valueSize();
582 QCPRange keyRange = map_data->keyRange();
583 QCPRange valueRange = map_data->valueRange();
588 double amplitude = maxZValue - minZValue;
590 double amplitude_fraction = amplitude * threshold_percentage / 100;
592 double threshold = minZValue + amplitude_fraction;
605 new_color_map_plot_config.
lastMinZValue = std::numeric_limits<double>::max();
606 new_color_map_plot_config.
lastMaxZValue = std::numeric_limits<double>::min();
609 QCPColorMapData *new_map_data =
610 new QCPColorMapData(keySize, valueSize, keyRange, valueRange);
612 for(
int iter = 0; iter < keySize; ++iter)
614 for(
int jter = 0; jter < valueSize; ++jter)
616 double cell_data = map_data->cell(iter, jter);
618 double new_cell_data = 0;
620 if(cell_data > threshold)
622 new_cell_data = cell_data;
624 new_cell_data = threshold;
631 std::min(new_color_map_plot_config.
lastMinZValue, new_cell_data);
637 std::max(new_color_map_plot_config.
lastMaxZValue, new_cell_data);
646 new_map_data->setCell(iter, jter, new_cell_data);
650 color_map_p->data()->clear();
653 color_map_p->setData(new_map_data);
655 color_map_p->data()->recalculateDataBounds();
656 color_map_p->rescaleDataRange(
true);
685 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
686 color_map_p->data()->clear();
690 "Not possible that the mpa_origColorMapData pointer be null."));
697 color_map_p->data()->recalculateDataBounds();
698 color_map_p->rescaleDataRange(
true);
737 QString(
"basecolormapplotwidget.cpp: The axis cannot be different than "
767 const QColor &new_color)
769 Q_UNUSED(plottable_p);
774 QPen pen = xAxis->basePen();
775 pen.setColor(new_color);
777 xAxis->setBasePen(pen);
778 xAxis->setLabelColor(new_color);
779 xAxis->setTickLabelColor(new_color);
781 yAxis->setBasePen(pen);
782 yAxis->setLabelColor(new_color);
783 yAxis->setTickLabelColor(new_color);
789 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
791 color_map_p->setPen(pen);
802 QPen pen = xAxis->basePen();
815 QCPColorMap *color_map_p =
static_cast<QCPColorMap *
>(plottable(0));
817 QCPColorMapData *map_data = color_map_p->data();
819 int keySize = map_data->keySize();
820 int valueSize = map_data->valueSize();
824 for(
int iter = 0; iter < keySize; ++iter)
826 for(
int jter = 0; jter < valueSize; ++jter)
828 text += QString(
"%1 %2 %3\n")
829 .arg(iter, 0,
'f', 6,
' ')
830 .arg(jter, 0,
'f', 6,
' ')
831 .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...
void setOrigAndLastMaxZValue(double value)
void setOrigAndLastMinZValue(double value)