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";
 
 1127  double visible_data_range_lower = 
m_context.m_xRange.lower;
 
 1128  double visible_data_range_upper = 
m_context.m_xRange.upper;
 
 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";
 
 1184  double visible_data_range_lower = 
m_context.m_yRange.lower;
 
 1185  double visible_data_range_upper = 
m_context.m_yRange.upper;
 
 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";