Changeset 6011 for branches/histogram/HeuristicLab.Analysis.Views
- Timestamp:
- 04/15/11 14:54:43 (13 years ago)
- Location:
- branches/histogram
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/histogram
- Property svn:mergeinfo changed
/trunk/sources (added) merged: 5962-5963,5971-5972,5975-5976,5983-5984,5987,5993,5997-5998,6002-6003,6009
- Property svn:mergeinfo changed
-
branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.Designer.cs
r6010 r6011 57 57 this.commonGroupBox = new System.Windows.Forms.GroupBox(); 58 58 this.histoGramGroupBox = new System.Windows.Forms.GroupBox(); 59 this.secondXAxisCheckBox = new System.Windows.Forms.CheckBox(); 59 60 ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).BeginInit(); 60 61 this.commonGroupBox.SuspendLayout(); … … 104 105 this.startIndexZeroCheckBox.AutoSize = true; 105 106 this.startIndexZeroCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; 106 this.startIndexZeroCheckBox.Location = new System.Drawing.Point(17, 98);107 this.startIndexZeroCheckBox.Location = new System.Drawing.Point(17, 121); 107 108 this.startIndexZeroCheckBox.Name = "startIndexZeroCheckBox"; 108 109 this.startIndexZeroCheckBox.Size = new System.Drawing.Size(89, 17); … … 164 165 | System.Windows.Forms.AnchorStyles.Right))); 165 166 this.commonGroupBox.Controls.Add(this.colorButton); 167 this.commonGroupBox.Controls.Add(this.secondXAxisCheckBox); 166 168 this.commonGroupBox.Controls.Add(this.secondYAxisCheckBox); 167 169 this.commonGroupBox.Controls.Add(this.label1); … … 171 173 this.commonGroupBox.Location = new System.Drawing.Point(3, 3); 172 174 this.commonGroupBox.Name = "commonGroupBox"; 173 this.commonGroupBox.Size = new System.Drawing.Size(473, 1 22);175 this.commonGroupBox.Size = new System.Drawing.Size(473, 142); 174 176 this.commonGroupBox.TabIndex = 7; 175 177 this.commonGroupBox.TabStop = false; … … 183 185 this.histoGramGroupBox.Controls.Add(this.exactBinsCheckBox); 184 186 this.histoGramGroupBox.Controls.Add(this.label3); 185 this.histoGramGroupBox.Location = new System.Drawing.Point(3, 1 31);187 this.histoGramGroupBox.Location = new System.Drawing.Point(3, 151); 186 188 this.histoGramGroupBox.Name = "histoGramGroupBox"; 187 189 this.histoGramGroupBox.Size = new System.Drawing.Size(473, 49); … … 190 192 this.histoGramGroupBox.Text = "Histogram"; 191 193 // 194 // secondXAxisCheckBox 195 // 196 this.secondXAxisCheckBox.AutoSize = true; 197 this.secondXAxisCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; 198 this.secondXAxisCheckBox.Location = new System.Drawing.Point(8, 98); 199 this.secondXAxisCheckBox.Name = "secondXAxisCheckBox"; 200 this.secondXAxisCheckBox.Size = new System.Drawing.Size(98, 17); 201 this.secondXAxisCheckBox.TabIndex = 1; 202 this.secondXAxisCheckBox.Text = "Second X Axis:"; 203 this.secondXAxisCheckBox.UseVisualStyleBackColor = true; 204 this.secondXAxisCheckBox.CheckedChanged += new System.EventHandler(this.secondXAxisCheckBox_CheckedChanged); 205 // 192 206 // DataRowVisualPropertiesControl 193 207 // … … 197 211 this.Controls.Add(this.commonGroupBox); 198 212 this.Name = "DataRowVisualPropertiesControl"; 199 this.Size = new System.Drawing.Size(479, 185);213 this.Size = new System.Drawing.Size(479, 205); 200 214 ((System.ComponentModel.ISupportInitialize)(this.binsNumericUpDown)).EndInit(); 201 215 this.commonGroupBox.ResumeLayout(false); … … 221 235 private System.Windows.Forms.GroupBox commonGroupBox; 222 236 private System.Windows.Forms.GroupBox histoGramGroupBox; 237 private System.Windows.Forms.CheckBox secondXAxisCheckBox; 223 238 } 224 239 } -
branches/histogram/HeuristicLab.Analysis.Views/3.3/DataRowVisualPropertiesControl.cs
r6010 r6011 53 53 colorButton.BackColor = SystemColors.Control; 54 54 secondYAxisCheckBox.Checked = false; 55 secondXAxisCheckBox.Checked = false; 55 56 startIndexZeroCheckBox.Checked = false; 56 57 binsNumericUpDown.Value = 1; … … 58 59 } else { 59 60 chartTypeComboBox.SelectedItem = Content.ChartType; 60 colorButton.BackColor = Content.Color; 61 if (Content.Color.IsEmpty) { 62 colorButton.BackColor = SystemColors.Control; 63 colorButton.Text = "?"; 64 } else colorButton.BackColor = Content.Color; 61 65 secondYAxisCheckBox.Checked = Content.SecondYAxis; 66 secondXAxisCheckBox.Checked = Content.SecondXAxis; 62 67 startIndexZeroCheckBox.Checked = Content.StartIndexZero; 63 68 binsNumericUpDown.Value = Content.Bins; … … 85 90 Content.Color = colorDialog.Color; 86 91 colorButton.BackColor = Content.Color; 92 colorButton.Text = String.Empty; 87 93 } 88 94 } … … 91 97 if (!SuppressEvents && Content != null) { 92 98 Content.SecondYAxis = secondYAxisCheckBox.Checked; 99 } 100 } 101 102 private void secondXAxisCheckBox_CheckedChanged(object sender, EventArgs e) { 103 if (!SuppressEvents && Content != null) { 104 Content.SecondXAxis = secondXAxisCheckBox.Checked; 93 105 } 94 106 } -
branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableView.cs
r6010 r6011 142 142 } 143 143 series.YAxisType = row.VisualProperties.SecondYAxis ? AxisType.Secondary : AxisType.Primary; 144 series.XAxisType = row.VisualProperties.SecondXAxis ? AxisType.Secondary : AxisType.Primary; 144 145 if (row.VisualProperties.Color != Color.Empty) series.Color = row.VisualProperties.Color; 145 146 series.ToolTip = row.Name + " X = #INDEX, Y = #VAL"; … … 305 306 chart.Series[row.Name].ChartType = SeriesChartType.Column; 306 307 chart.Series[row.Name]["PointWidth"] = "1"; 308 CalculateHistogram(chart.Series[row.Name], row); 307 309 break; 308 310 default: … … 311 313 } 312 314 chart.Series[row.Name].YAxisType = row.VisualProperties.SecondYAxis ? AxisType.Secondary : AxisType.Primary; 315 chart.Series[row.Name].XAxisType = row.VisualProperties.SecondXAxis ? AxisType.Secondary : AxisType.Primary; 313 316 if (row.VisualProperties.Color != Color.Empty) chart.Series[row.Name].Color = row.VisualProperties.Color; 314 317 chart.ChartAreas[0].RecalculateAxesScale(); … … 444 447 445 448 private void FillSeriesWithRowValues(Series series, DataRow row) { 446 if (row.VisualProperties.ChartType == DataRowVisualProperties.DataRowChartType.Histogram) { 447 series.Points.Clear(); 448 if (!row.Values.Any()) return; 449 int bins = row.VisualProperties.Bins; 450 451 double minValue = row.Values.Min(); 452 double maxValue = row.Values.Max(); 453 double intervalWidth = (maxValue - minValue) / bins; 454 if (intervalWidth <= 0) return; 455 456 if (!row.VisualProperties.ExactBins) { 457 intervalWidth = HumanRoundRange(intervalWidth); 458 minValue = Math.Floor(minValue / intervalWidth) * intervalWidth; 459 maxValue = Math.Ceiling(maxValue / intervalWidth) * intervalWidth; 460 } 461 462 double current = minValue, intervalCenter = intervalWidth / 2.0; 463 int frequency = 0; 464 foreach (double v in row.Values.Where(x => !IsInvalidValue(x)).OrderBy(x => x)) { 465 while (v > current + intervalWidth) { 466 series.Points.AddXY(current + intervalCenter, frequency); 467 current += intervalWidth; 468 frequency = 0; 469 } 470 frequency++; 471 } 472 series.Points.AddXY(current + intervalCenter, frequency); 473 } else { 474 for (int i = 0; i < row.Values.Count; i++) { 475 var value = row.Values[i]; 476 DataPoint point = new DataPoint(); 477 point.XValue = row.VisualProperties.StartIndexZero ? i : i + 1; 478 if (IsInvalidValue(value)) 479 point.IsEmpty = true; 480 else 481 point.YValues = new double[] { value }; 482 series.Points.Add(point); 483 } 484 } 449 switch (row.VisualProperties.ChartType) { 450 case DataRowVisualProperties.DataRowChartType.Histogram: 451 CalculateHistogram(series, row); 452 break; 453 default: { 454 for (int i = 0; i < row.Values.Count; i++) { 455 var value = row.Values[i]; 456 DataPoint point = new DataPoint(); 457 point.XValue = row.VisualProperties.StartIndexZero ? i : i + 1; 458 if (IsInvalidValue(value)) 459 point.IsEmpty = true; 460 else 461 point.YValues = new double[] { value }; 462 series.Points.Add(point); 463 } 464 } 465 break; 466 } 467 } 468 469 private void CalculateHistogram(Series series, DataRow row) { 470 series.Points.Clear(); 471 if (!row.Values.Any()) return; 472 int bins = row.VisualProperties.Bins; 473 474 double minValue = row.Values.Min(); 475 double maxValue = row.Values.Max(); 476 double intervalWidth = (maxValue - minValue) / bins; 477 if (intervalWidth <= 0) return; 478 479 if (!row.VisualProperties.ExactBins) { 480 intervalWidth = HumanRoundRange(intervalWidth); 481 minValue = Math.Floor(minValue / intervalWidth) * intervalWidth; 482 maxValue = Math.Ceiling(maxValue / intervalWidth) * intervalWidth; 483 } 484 485 double current = minValue, intervalCenter = intervalWidth / 2.0; 486 int frequency = 0; 487 foreach (double v in row.Values.Where(x => !IsInvalidValue(x)).OrderBy(x => x)) { 488 while (v > current + intervalWidth) { 489 series.Points.AddXY(current + intervalCenter, frequency); 490 current += intervalWidth; 491 frequency = 0; 492 } 493 frequency++; 494 } 495 series.Points.AddXY(current + intervalCenter, frequency); 485 496 } 486 497 -
branches/histogram/HeuristicLab.Analysis.Views/3.3/DataTableVisualPropertiesDialog.cs
r6010 r6011 64 64 private void cancelButton_Click(object sender, System.EventArgs e) { 65 65 DialogResult = DialogResult.Cancel; 66 Content.VisualProperties = originalDataTableVPs;67 66 foreach (DataRow row in Content.Rows) { 68 67 row.VisualProperties = originalDataRowVPs[row.Name]; 69 68 } 69 Content.VisualProperties = originalDataTableVPs; 70 70 Close(); 71 71 }
Note: See TracChangeset
for help on using the changeset viewer.