[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [labplot/histogram_chart] src: Cummulative histogram added
From: Anu Mittal <anu22mittal () gmail ! com>
Date: 2016-08-02 18:57:15
Message-ID: E1bUesN-0003Ia-NX () code ! kde ! org
[Download RAW message or body]
Git commit 01f46c66a15ecaacc07489684a159a66fa6f70c5 by Anu Mittal.
Committed on 02/08/2016 at 18:56.
Pushed by anumittal into branch 'histogram_chart'.
Cummulative histogram added
M +96 -33 src/backend/worksheet/plots/cartesian/Histogram.cpp
M +17 -14 src/kdefrontend/ui/dockwidgets/histogramdockgeneraltab.ui
http://commits.kde.org/labplot/01f46c66a15ecaacc07489684a159a66fa6f70c5
diff --git a/src/backend/worksheet/plots/cartesian/Histogram.cpp \
b/src/backend/worksheet/plots/cartesian/Histogram.cpp index b9eed94..5b3f093 100644
--- a/src/backend/worksheet/plots/cartesian/Histogram.cpp
+++ b/src/backend/worksheet/plots/cartesian/Histogram.cpp
@@ -439,8 +439,25 @@ QRectF HistogramPrivate::boundingRect() const {
}
double HistogramPrivate::getYMaximum() {
if (histogram){
- size_t maxYAddes= gsl_histogram_max_bin(histogram);
- return gsl_histogram_get(histogram, maxYAddes);
+ double yMaxRange=0.0;
+ switch(histogramType) {
+ case Histogram::Ordinary:
+ {
+ size_t maxYAddes= gsl_histogram_max_bin(histogram);
+ yMaxRange = gsl_histogram_get(histogram, maxYAddes);
+ break;
+ }
+ case Histogram::Cummulative:
+ {
+ yMaxRange = xColumn->rowCount();
+ break;
+ }
+ case Histogram::AvgShift:
+ {
+ //TODO
+ }
+ }
+ return yMaxRange;
}
return -INFINITY;
}
@@ -573,57 +590,103 @@ void HistogramPrivate::updateLines(){
histogram = gsl_histogram_alloc (bins); // demo- number of bins
gsl_histogram_set_ranges_uniform (histogram, xAxisMin,xAxisMax+1);
- for (int row = startRow; row <= endRow; row++ ){
- if ( xColumn->isValid(row) && !xColumn->isMasked(row) )
- gsl_histogram_increment(histogram,xColumn->valueAt(row));
- }
-
//checking height of each column
/*for(int i=0;i < bins; ++i) {
qDebug() <<i<< " height "<< gsl_histogram_get(histogram,i);
}
*/
switch(histogramType) {
- case Histogram::Ordinary:
- for(int i=0;i < bins; ++i) {
- tempPoint.setX(xAxisMin);
- tempPoint.setY(0.0);
+ case Histogram::Ordinary: {
+ for (int row = startRow; row <= endRow; row++ ){
+ if ( xColumn->isValid(row) && !xColumn->isMasked(row) )
+ gsl_histogram_increment(histogram,xColumn->valueAt(row));
+ }
+ for(int i=0;i < bins; ++i) {
+ tempPoint.setX(xAxisMin);
+ tempPoint.setY(0.0);
- tempPoint1.setX(xAxisMin);
- tempPoint1.setY(gsl_histogram_get(histogram,i));
+ tempPoint1.setX(xAxisMin);
+ tempPoint1.setY(gsl_histogram_get(histogram,i));
- lines.append(QLineF(tempPoint, tempPoint1));
+ lines.append(QLineF(tempPoint, tempPoint1));
- tempPoint.setX(xAxisMin);
- tempPoint.setY(gsl_histogram_get(histogram,i));
+ tempPoint.setX(xAxisMin);
+ tempPoint.setY(gsl_histogram_get(histogram,i));
- tempPoint1.setX(xAxisMin+width);
- tempPoint1.setY(gsl_histogram_get(histogram,i));
+ tempPoint1.setX(xAxisMin+width);
+ tempPoint1.setY(gsl_histogram_get(histogram,i));
- lines.append(QLineF(tempPoint,tempPoint1));
+ lines.append(QLineF(tempPoint,tempPoint1));
- tempPoint.setX(xAxisMin+width);
- tempPoint.setY(gsl_histogram_get(histogram,i));
+ tempPoint.setX(xAxisMin+width);
+ tempPoint.setY(gsl_histogram_get(histogram,i));
- tempPoint1.setX(xAxisMin+width);
- tempPoint1.setY(0.0);
+ tempPoint1.setX(xAxisMin+width);
+ tempPoint1.setY(0.0);
- lines.append(QLineF(tempPoint, tempPoint1));
+ lines.append(QLineF(tempPoint, tempPoint1));
- tempPoint.setX(xAxisMin+width);
- tempPoint.setY(0.0);
+ tempPoint.setX(xAxisMin+width);
+ tempPoint.setY(0.0);
+
+ tempPoint1.setX(xAxisMin);
+ tempPoint1.setY(0.0);
- tempPoint1.setX(xAxisMin);
- tempPoint1.setY(0.0);
+ lines.append(QLineF(tempPoint, tempPoint1));
+ xAxisMin+= width;
+ }
+ break;
+ }
+ case Histogram::Cummulative: {
+ double point =0.0;
+ for (int row = startRow; row <= endRow; row++ ){
+ if ( xColumn->isValid(row) && !xColumn->isMasked(row))
+ {
+ gsl_histogram_increment(histogram,xColumn->valueAt(row));
+ }
+ }
+ for(int i=0;i < bins; ++i) {
+ point+= gsl_histogram_get(histogram,i);
+ tempPoint.setX(xAxisMin);
+ tempPoint.setY(0.0);
- lines.append(QLineF(tempPoint, tempPoint1));
- xAxisMin+= width;
- }
- break;
- case Histogram::Cummulative:
+ tempPoint1.setX(xAxisMin);
+ tempPoint1.setY(point);
+
+ lines.append(QLineF(tempPoint, tempPoint1));
+
+ tempPoint.setX(xAxisMin);
+ tempPoint.setY(point);
+
+ tempPoint1.setX(xAxisMin+width);
+ tempPoint1.setY(point);
+
+ lines.append(QLineF(tempPoint,tempPoint1));
+
+ tempPoint.setX(xAxisMin+width);
+ tempPoint.setY(point);
+
+ tempPoint1.setX(xAxisMin+width);
+ tempPoint1.setY(0.0);
+
+ lines.append(QLineF(tempPoint, tempPoint1));
+
+ tempPoint.setX(xAxisMin+width);
+ tempPoint.setY(0.0);
+
+ tempPoint1.setX(xAxisMin);
+ tempPoint1.setY(0.0);
+
+ lines.append(QLineF(tempPoint, tempPoint1));
+ xAxisMin+= width;
+ }
break;
+ }
case Histogram::AvgShift:
+ {
+ //TODO
break;
+ }
}
//calculate the lines connecting the data points
diff --git a/src/kdefrontend/ui/dockwidgets/histogramdockgeneraltab.ui \
b/src/kdefrontend/ui/dockwidgets/histogramdockgeneraltab.ui index 8cce06c..990ec05 \
100644
--- a/src/kdefrontend/ui/dockwidgets/histogramdockgeneraltab.ui
+++ b/src/kdefrontend/ui/dockwidgets/histogramdockgeneraltab.ui
@@ -85,10 +85,10 @@
</property>
</widget>
</item>
- <item row="10" column="0">
- <widget class="QCheckBox" name="chkVisible">
+ <item row="7" column="0">
+ <widget class="QLabel" name="lHistogramColour">
<property name="text">
- <string>visible</string>
+ <string>Color</string>
</property>
</widget>
</item>
@@ -99,14 +99,14 @@
</property>
</widget>
</item>
- <item row="6" column="0">
- <widget class="QLabel" name="lHistogramColour">
+ <item row="11" column="0">
+ <widget class="QCheckBox" name="chkVisible">
<property name="text">
- <string>Color</string>
+ <string>visible</string>
</property>
</widget>
</item>
- <item row="6" column="2">
+ <item row="7" column="2">
<widget class="KColorButton" name="kcbLineColor">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -116,7 +116,10 @@
</property>
</widget>
</item>
- <item row="9" column="0">
+ <item row="9" column="2">
+ <widget class="QComboBox" name="cbHistogramType"/>
+ </item>
+ <item row="10" column="0">
<spacer name="verticalSpacerGeneral">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -145,10 +148,10 @@
</property>
</widget>
</item>
- <item row="8" column="2">
- <widget class="QComboBox" name="cbHistogramType"/>
+ <item row="5" column="2">
+ <widget class="QComboBox" name="cbBins"/>
</item>
- <item row="8" column="0">
+ <item row="9" column="0">
<widget class="QLabel" name="lType">
<property name="font">
<font>
@@ -161,7 +164,7 @@
</property>
</widget>
</item>
- <item row="7" column="0">
+ <item row="8" column="0">
<spacer name="verticalSpacerHT">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -177,8 +180,8 @@
</property>
</spacer>
</item>
- <item row="5" column="2">
- <widget class="QComboBox" name="cbBins"/>
+ <item row="6" column="2">
+ <widget class="QLineEdit" name="leBins"/>
</item>
</layout>
</widget>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic