ChartControl.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace OTSExtremum
  11. {
  12. public partial class ChartControl : UserControl
  13. {
  14. public List<double[]> parameters { get; set; }
  15. public double delta { get; set; }
  16. public double lambda { get; set; }
  17. public string title { get; set; }
  18. public ChartControl()
  19. {
  20. InitializeComponent();
  21. }
  22. private void ChartControl_Load(object sender, EventArgs e)
  23. {
  24. int n = parameters[0].Length;
  25. //画data
  26. for (int i = 0; i < n; i++)
  27. {
  28. chart1.Series[0].Points.AddXY(parameters[1][i], parameters[0][i]);
  29. chart1.Series[1].Points.AddXY(parameters[2][i], parameters[0][i]);
  30. chart1.Series[2].Points.AddXY(parameters[3][i], parameters[0][i]);
  31. chart1.Series[3].Points.AddXY(parameters[4][i], parameters[0][i]);
  32. }
  33. double se = (11.61 * delta) / Math.Sqrt(parameters[0].Length);
  34. double max = 6.91 * delta + lambda;
  35. //chart1.Series[1].Points.AddXY(max, 6.907);
  36. //chart1.Series[2].Points.AddXY(max - se, 6.907);
  37. //chart1.Series[3].Points.AddXY(max + se, 6.907);
  38. label2.Text = title;
  39. // label1.Text = "Lmax=" + Math.Round(max, 1).ToString() + "+-" + Math.Round(se, 1).ToString();
  40. label1.Text = "L=" + Math.Round(delta, 3).ToString() + "Rel.Var+" + Math.Round(lambda, 3).ToString();
  41. }
  42. }
  43. }