void BarPlot::calcDomains() { if (plotEntitiesProp_.dataValid()) { //the x domain is simply [0,number of rows-1] Interval<plot_t> xDomain = Interval<plot_t>(0,data_.getRowsCount()-1,false,false); //get y domain Interval<plot_t> yDomain; std::vector<PlotEntitySettings>::const_iterator it = plotEntitiesProp_.get().begin(); if (barMode_.getValue() == PlotLibrary::GROUPED || barMode_.getValue() == PlotLibrary::MERGED) { for (; it < plotEntitiesProp_.get().end(); ++it) { Interval<plot_t> lineDomain = data_.getInterval(it->getMainColumnIndex()); yDomain.unionWith(lineDomain); } } else { std::vector<int> columns; for (; it < plotEntitiesProp_.get().end(); ++it) columns.push_back(it->getMainColumnIndex()); yDomain = data_.getSumInterval(columns); } xDomain = Interval<plot_t>(xDomain.getLeft()-0.5, xDomain.getRight()+0.5, false, false); yDomain = Interval<plot_t>(std::min(0.0, yDomain.getLeft()), std::max(0.0, yDomain.getRight()), true, true); plotLib_.setDomain(xDomain, PlotLibrary::X_AXIS); plotLib_.setDomain(yDomain, PlotLibrary::Y_AXIS); } }
void LinePlot::calcDomains() { if (plotEntitiesProp_.dataValid() && !inportHasPlotFunction_) { Interval<plot_t> xDomain = data_.getInterval(plotEntitiesProp_.getXColumnIndex()); Interval<plot_t> yDomain = Interval<plot_t>(); std::vector<PlotEntitySettings>::const_iterator it = plotEntitiesProp_.get().begin(); for (; it < plotEntitiesProp_.get().end(); ++it) { if (!it->getCandleStickFlag()) { Interval<plot_t> lineDomain = data_.getInterval(it->getMainColumnIndex()); if (it->getOptionalColumnIndex() != -1) { Interval<plot_t> errorDomain = data_.getInterval(it->getOptionalColumnIndex()); plot_t error = std::max(abs(errorDomain.getLeft()), abs(errorDomain.getRight())); lineDomain = Interval<plot_t>(lineDomain.getLeft()-error, lineDomain.getRight()+error); } yDomain.unionWith(lineDomain); } else { yDomain.unionWith(data_.getInterval(it->getStickTopColumnIndex())); yDomain.unionWith(data_.getInterval(it->getStickBottomColumnIndex())); yDomain.unionWith(data_.getInterval(it->getCandleTopColumnIndex())); yDomain.unionWith(data_.getInterval(it->getCandleBottomColumnIndex())); } } yDomain.enlarge(1.1); selectionProp_.setBaseZoomState(PlotZoomState(xDomain, yDomain)); } }