複数の選択肢をチャートエリアで数えたいと思っています。例として、複数の選択肢をこの画像としてマークすることができます。Multiple selected chart。このチャートでは、複数の選択肢の数をどのように数えますか。グラフ領域の複数選択の数はどのように数えますか?
私の複数の選択コードは次のとおりです。
SizeF rangeOfCurve = SizeF.Empty;
List<SizeF> ranges = new List<SizeF>();
List<int> selectedIndices = new List<int>();
private void chart1_SelectionRangeChanged(object sender, CursorEventArgs e)
{
ranges.Add(rangeOfCurve);
selectedIndices.Union(collectDataPoints(chart1.Series[0],rangeOfCurve.Width, rangeOfCurve.Height)).Distinct();
StripLine sl = new StripLine();
sl.BackColor = Color.FromArgb(255, Color.LightSeaGreen);
sl.IntervalOffset = Math.Min(rangeOfCurve.Width, rangeOfCurve.Height);
sl.StripWidth = Math.Abs(rangeOfCurve.Height - rangeOfCurve.Width);
chart1.ChartAreas[0].AxisX.StripLines.Add(sl);
}
List<int> collectDataPoints(Series s, double min, double max)
{
List<int> hits = new List<int>();
for (int i = 0; i < s.Points.Count; i++)
if (s.Points[i].XValue >= min && s.Points[i].XValue <= max) hits.Add(i);
return hits;
}
private void chart1_SelectionRangeChanging(object sender, CursorEventArgs e)
{
rangeOfCurve = new SizeF((float)e.NewSelectionStart, (float)e.NewSelectionEnd);
}
これは、私は、ボタンのクリックイベントを追加ここに新しい.CSV file.Inにデータを選択したものは、私は、私は複数選択を追加することができます言いたいfile.but別の.csvをエクスポートするエリアデータを選択し、輸出のための私のコードですグラフ領域ではデータが最後に選択された部分のみにエクスポートされます。複数の選択データをすべて取得できます。これは、選択した1つの領域データを別の.csvファイルに取り込むためのコードです。
private void btnExport_Click(object sender, EventArgs e)
{
List<Graph> ObservingData = new List<Graph>(); // List to store all available Graph objects from the CSV
int index = 0;
using (StreamWriter sw = new StreamWriter(@"D:\CSVFile\NEWFile\Export\NewFile.csv"))
{
// Loops through each lines in the CSV
foreach (string line in System.IO.File.ReadAllLines(pathToCsv))
{
// here line stands for each line in the csv file
string[] CsvLine = line.Split(',');
// creating an object of type Graph based on the each csv line
// and adding them to the List<Graph>
Graph Instance1 = new Graph();
if (index == 0)
{
sw.WriteLine(line);
}
else
{
//Add the code here..**
if (((chart1.ChartAreas[0].CursorX.SelectionStart))<=index && (index<= (chart1.ChartAreas[0].CursorX.SelectionEnd)))
{
sw.WriteLine(line);
}
}
index++;
}
sw.Close();
}
MessageBox.Show("Data are copied to the new .CSV file");
}
あなたはあなたにそんなに感謝this.I午前を解決するために、任意の助けを与えることができます。ここでは、あなたが選択をマークするStripLines
を追加したと仮定すると、
あなたはストリップラインのコレクションを列挙し、それぞれの特性を試験することができます。ストリップライン(実際には「選択肢」ではない)やデータポイントについての情報が必要ですか? – TaW
@ TaW.私はこの言語のための初心者です。私はこの問題を解決するために私に助けを与えてください。私はチャートに複数の選択肢を表示したいと私は持っていた。CSVファイルでその複数の選択データポイントを取得したい複数の選択されたすべての領域の境界をカウントしたい。 'chart1.ChartAreas [0] .CursorX.SelectionStart'と 'chart1.ChartAreas [0] .CursorX.SelectionEnd'を使用して1つの選択されたデータ領域を取得できますが、選択した地域を1つずつ選択してください。そのために私に何か助けてください。 – SNP
軸には1つのカーソルしかないので、このように作成できる選択肢は1つだけです。ストリップラインは選択を作成する最も簡単な方法でもありません。 - マウスイベントのみを使用して複数の選択肢を作成する例については、リンクを参照してください。ご質問がある場合はお気軽にお問い合わせください。 – TaW