0

折れ線グラフをプロットしようとしていますが、C# でさまざまな量のデータを含むグラフをプロットする方法を理解するのに問題があります。

例: 2 列 10 行の .csv ファイルがあるとします。最初の列には常にデータ (日時) がありましたが、2 番目の列には 4 行しかデータがありませんでした (他の 6 行のデータはゼロです)。この種のグラフを持たずにこのチャートをプロットするにはどうすればよいですか? 同じ間隔で、ポイントが互いに接続された連続チャートが必要です。

ありがとう!

グラフの画像は次のとおりです: http://i.stack.imgur.com/hFcE4.png

私のコード:

public MainForm()
{
     InitializeComponent();

     setupChart();
}

private void cmdLoadData_Click(object sender, EventArgs e)
{
     //I read the .csv file with a try/catch using a streamReader and save the data in
     //a class named Measurement that has two variables: _time and _measure.
     //The Measurement created is add to a List of Measurements.

     //I pass the List of Measurements as a DataSource to the DataGrid
     grdMeasurements.DataSource = _measurementList;

     //I pass the List of Measurements as a DataSource to the Chart.
     chartLineMatching.DataSource = _measurementList;
     chartLineMatching.DataBind();
}

public void setupChart()
{       
      chartLineMatching.Series.Clear();
      chartLineMatching.Titles.Clear();

      Series dataSerie = new Series("Series1", 200);
      dataSerie.XValueMember = "Time";
      dataSerie.XValueType = ChartValueType.DateTime;
      chartLineMatching.ChartAreas[0].AxisX.LabelStyle.Format = "dd/MM HH:mm";
      dataSerie.YValueMembers = "Value5";
      dataSerie.ChartType = SeriesChartType.Line;
      chartLineMatching.ChartAreas[0].AxisY.LabelStyle.Format = "{0;0}" + "°";
      dataSerie.BorderWidth = 2;
      dataSerie.Color = System.Drawing.Color.Blue;
      chartLineMatching.Series.Add(dataSerie);
      chartLineMatching.Series[0].YAxisType = AxisType.Secondary;

      chartLineMatching.ChartAreas[0].AxisY2.LineColor = Color.Transparent;
      chartLineMatching.ChartAreas[0].AxisY2.MajorGrid.Enabled = false;
      chartLineMatching.ChartAreas[0].AxisY2.Enabled = AxisEnabled.True;
      chartLineMatching.ChartAreas[0].AxisY2.Interval = 4;
      chartLineMatching.ChartAreas[0].AxisY2.LabelStyle.Format = "{0;0}" + "%";

      chartLineMatching.ChartAreas[0].AxisY.Interval = 10;
      chartLineMatching.ChartAreas[0].AxisX.Interval = 0.5;
}
4

1 に答える 1

0

値の列に「0」があるデータポイントをスキップしようとしているようです。これを行う方法は、csv データからグラフを作成するために使用しているコードによって異なります。コードを表示しないと、本当に役に立ちません。

ただし、基本的には、スキップするポイントを削除するフィルターを介してデータを渡し、フィルター処理されたデータセットからグラフを作成する必要があります。

于 2013-06-05T23:24:35.413 に答える