diff --git a/modules/base/pymod/stutil.py b/modules/base/pymod/stutil.py index 2f64beaefa3731c5689c73c585cbc3edb37d32f1..75bb922485ac2239d0158b3ba80a33cc05976990 100644 --- a/modules/base/pymod/stutil.py +++ b/modules/base/pymod/stutil.py @@ -93,3 +93,13 @@ def Correl(xs, ys): sigma_x=math.sqrt(sigma_x/len(xs)) sigma_y=math.sqrt(sigma_y/len(ys)) return cross_term/((len(xs)-1)*sigma_x*sigma_y) + +def Histogram(xs, bounds, num_bins): + bins=[0 for i in range(num_bins)] + d=1.0*num_bins/(bounds[1]-bounds[0]) + for x in xs: + index=int((x-bounds[0])*d) + if index>num_bins-1 or index<0: + continue + bins[index]+=1 + return bins diff --git a/modules/gui/src/data_viewer/data_viewer_panel_base.cc b/modules/gui/src/data_viewer/data_viewer_panel_base.cc index 0fb9c0c5b3c85c4c4ca8086becbc4fc1e88a4e47..5af82c95412a70473a65db79378fbbfd8c724acd 100644 --- a/modules/gui/src/data_viewer/data_viewer_panel_base.cc +++ b/modules/gui/src/data_viewer/data_viewer_panel_base.cc @@ -554,9 +554,9 @@ void DataViewerPanelBase::mouseMoveEvent(QMouseEvent* event) Point max_pos=WinToPoint(vsize.width(),vsize.height()); Point min_pos=WinToPoint(0,0); selection_=Extent(Point(std::max(min_pos[0],std::min(drag_start[0],mouse_pos[0])), - std::max(min_pos[1],std::min(drag_start[1],mouse_pos[1]))), + std::max(min_pos[1],std::min(drag_start[1],mouse_pos[1])), slab_), Point(std::max(drag_start[0],std::min(max_pos[0],mouse_pos[0])), - std::max(drag_start[1],std::min(max_pos[1],mouse_pos[1])))); + std::max(drag_start[1],std::min(max_pos[1],mouse_pos[1])), slab_)); if(selection_mode_>0){ Size s=selection_.GetSize(); int minsize=std::min<int>(s[0],s[1]);