我有 3 列資料表;我想在我的圖表上顯示 INST_ID 和 Legends 的值。
我的問題是,INST_ID 可以變化。它可能有 5 個不同的 INST_ID。
如何顯示所有系列屬于 INST_ID 和圖例?
這是當前的結果

這是我為 Ultra Data Chart 生成的代碼
private void Form1_Load(object sender, EventArgs e)
{
dtLineTest.Columns.Add("SAMPLE_TIME",typeof(DateTime));
dtLineTest.Columns.Add("INST_ID", typeof(Int32));
dtLineTest.Columns.Add("VALUE", typeof(Int32));
dtLineTest.Rows.Add(DateTime.Now,1,14);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-1), 1, 18);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-2), 1, 11);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-3), 1, 7);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-4), 1, 21);
dtLineTest.Rows.Add(DateTime.Now, 2, 16);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-1), 2, 3);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-2), 2, 5);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-3), 2, 12);
dtLineTest.Rows.Add(DateTime.Now.AddMinutes(-4), 2, 13);
var xAxis = new CategoryXAxis();
var yAxis = new NumericYAxis();
xAxis.DataSource = dtLineTest;
xAxis.Label = "SAMPLE_TIME";
var legend = new UltraLegend();
var lineSeries = new LineSeries();
lineSeries.DataSource = dtLineTest;
lineSeries.ValueMemberPath = "VALUE";
lineSeries.Title = "INST_ID";
lineSeries.XAxis = xAxis;
lineSeries.YAxis = yAxis;
lineSeries.Legend = legend;
ultraDataChart1.Axes.Add(xAxis);
ultraDataChart1.Axes.Add(yAxis);
ultraDataChart1.Series.Add(lineSeries);
}
uj5u.com熱心網友回復:
要在圖表中顯示多條線,您需要在圖表中添加幾條線lineSeries。在您的情況下,您可以按INST_ID列對表中的資料進行分組,并為每個組創建一個lineSeries。像這樣的東西:
var groupedData = dtLineTest.AsEnumerable().GroupBy(g => g["INST_ID"]);
foreach (var group in groupedData)
{
var dt = new DataTable();
dt.Columns.Add("SAMPLE_TIME", typeof(DateTime));
dt.Columns.Add("INST_ID", typeof(Int32));
dt.Columns.Add("VALUE", typeof(Int32));
foreach (var row in group)
{
dt.Rows.Add(row.ItemArray);
}
var legend = new UltraLegend();
var lineSeries = new LineSeries();
lineSeries.DataSource = dt;
lineSeries.ValueMemberPath = "VALUE";
lineSeries.Title = "INST_ID";
lineSeries.XAxis = xAxis;
lineSeries.YAxis = yAxis;
lineSeries.Legend = legend;
ultraDataChart1.Series.Add(lineSeries);
}
注意:如果您事先為每個系列準備了單獨的表格,將會容易得多。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/509995.html
標籤:C#表格图表基础设施
