Changeset 13817 for branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Problems.DataAnalysis.Views/3.4/GradientChart.cs
- Timestamp:
- 04/29/16 17:09:15 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Problems.DataAnalysis.Views/3.4/GradientChart.cs
r13808 r13817 23 23 using System.Collections.Generic; 24 24 using System.Drawing; 25 using System.Globalization; 25 26 using System.Linq; 26 27 using System.Windows.Forms; … … 32 33 public partial class GradientChart : EnhancedChart { 33 34 private ModifiableDataset internalDataset; 35 36 public bool ShowLegend { get; set; } 34 37 35 38 private bool useMedianValues; … … 199 202 if (points == 0) 200 203 return; 201 CalculateAxisInterval();202 204 Series.Clear(); 203 205 var vla = VerticalLineAnnotation; … … 212 214 var p = series.Points.Last(); 213 215 vla.X = p.XValue; 214 var ta = new TextAnnotation { 215 Text = string.Format("X: {0:0.000}, Y: {1:0.000}", p.XValue, p.YValues[0]), 216 Visible = true, 217 X = p.XValue, 218 Y = p.YValues[0], 219 AxisX = ChartAreas[0].AxisX, 220 AxisY = ChartAreas[0].AxisY 221 }; 222 ta.ClipToChartArea = "ChartArea1"; 223 ta.Name = series.Name; 224 Annotations.Add(ta); 225 } 216 ChartAreas[0].AxisX.Title = Variable + " " + vla.X.ToString("N3", CultureInfo.CurrentCulture); 217 // var ta = new TextAnnotation { 218 // Text = string.Format("X: {0:0.000}, Y: {1:0.000}", p.XValue, p.YValues[0]), 219 // Visible = true, 220 // X = p.XValue, 221 // Y = p.YValues[0], 222 // AxisX = ChartAreas[0].AxisX, 223 // AxisY = ChartAreas[0].AxisY 224 // }; 225 // ta.ClipToChartArea = "ChartArea1"; 226 // ta.Name = series.Name; 227 // Annotations.Add(ta); 228 } 229 CalculateAxisInterval(); 226 230 AddStripLines(); 227 AddLegends(); 231 if (ShowLegend) 232 AddLegends(); 228 233 } 229 234 … … 260 265 var step = (max - min) / points; 261 266 var axisX = ChartAreas[0].AxisX; 262 axisX.Title = Variable ;267 axisX.Title = Variable + " : " + v.ToString("N3", CultureInfo.CurrentCulture); 263 268 var axisY = ChartAreas[0].AxisY; 264 269 axisY.Title = Target; … … 290 295 Legends.Clear(); 291 296 var legend = new Legend(); 292 // legend.Name = s.Name;293 297 legend.Alignment = StringAlignment.Center; 294 298 legend.LegendStyle = LegendStyle.Row; … … 302 306 private void AddStripLines() { 303 307 var axisX = ChartAreas[0].AxisX; 304 axisX.Title = Variable;305 var axisY = ChartAreas[0].AxisY;306 axisY.Title = ProblemData.TargetVariable;307 308 axisX.StripLines.Clear(); 308 309 axisX.StripLines.Add(new StripLine { BackColor = Color.FromArgb(30, Color.Green), IntervalOffset = axisX.Minimum, StripWidth = min - axisX.Minimum }); … … 317 318 axis.Maximum = axisMax; 318 319 axis.Interval = axisInterval; 320 321 double ymin = 0, ymax = 0; 322 foreach (var v in Series[0].Points.Select(x => x.YValues[0])) { 323 if (ymin > v) ymin = v; 324 if (ymax < v) ymax = v; 325 } 326 ChartUtil.CalculateAxisInterval(ymin, ymax, 5, out axisMin, out axisMax, out axisInterval); 327 axis = ChartAreas[0].AxisY; 328 axis.Minimum = axisMin; 329 axis.Maximum = axisMax; 330 axis.Interval = axisInterval; 319 331 } 320 332 … … 326 338 327 339 #region events 340 public event EventHandler VariableValueChanged; 341 public void OnVariableValueChanged(object sender, EventArgs args) { 342 var changed = VariableValueChanged; 343 if (changed == null) return; 344 changed(sender, args); 345 } 346 328 347 public event EventHandler ChartPropertyChanged; 329 348 public void OnChartPropertyChanged(object sender, EventArgs args) { … … 353 372 e.NewLocationX = axisX.Minimum; 354 373 var x = e.NewLocationX; 355 356 // var va = VerticalLineAnnotation; 357 // Annotations.Clear(); 358 // Annotations.Add(va); 374 internalDataset.SetVariableValue(x, Variable, 0); 359 375 for (int i = 0; i < solutionList.Count; ++i) { 360 376 var y = GetEstimatedValue(solutionList[i], x); … … 363 379 s.Points[n - 1] = new DataPoint(x, y) { MarkerColor = Color.Red, MarkerSize = 5 }; 364 380 } 365 foreach (var annotation in Annotations.OfType<TextAnnotation>()) { 366 var p = Series[annotation.Name].Points.Last(); 367 annotation.Text = string.Format("X: {0:0.000}, Y: {1:0.000}", p.XValue, p.YValues[0]); 368 annotation.X = p.XValue; 369 annotation.Y = p.YValues[0]; 370 } 381 ChartAreas[0].AxisX.Title = Variable + " : " + x.ToString("N3", CultureInfo.CurrentCulture); 371 382 Update(); 383 OnVariableValueChanged(this, EventArgs.Empty); 372 384 } 373 385 … … 390 402 } 391 403 } 392 #endregion393 404 394 405 private void GradientChart_DragDrop(object sender, DragEventArgs e) { … … 411 422 } 412 423 } 424 #endregion 413 425 } 414 426 }
Note: See TracChangeset
for help on using the changeset viewer.