/ / c # graf nespojitý - c #, grafy, čiara, mschart, break

c# graf non kontinuálne - c#, grafy, linky, mschart, prestávka

Mám problém s čiarovým grafom. Mám údaje, ktoré nie sú nepretržité, pretože hodnoty sa merajú iba vtedy, keď program pracuje.

Chcem nakresliť čiaru iba vtedy, keď sú hodnoty bližšie ako jedna hodina, takže nechcem žiadny riadok (zlom v grafe).

Kód je uvedený nižšie:

chart1.Series[dataTable.Columns[x].Caption].ChartType =
System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
for (int i = 0; i < dataTable.Rows.Count - 1; i++)
chart1.Series[dataTable.Columns[x].Caption].Points.AddXY(dataTable.Rows[i][0], dataTable.Rows[i][x]);
next

odpovede:

1 pre odpoveď č. 1

Umožní vám vykresliť body, ktoré zvyknú bodovať na čiare

chart1.Series[dataTable.Columns[x].Caption].Points.Add(new DataPoint(dataTable.Rows[i][0], double.NaN) { IsEmpty = true });

Ak nechcete vykresliť hodnoty menej ako hodinu, skúste použiť príkaz if vo vašej slučke for for, ktorý bude riadiť vykreslené body

for (int i = 0; i < dataTable.Rows.Count - 1; i++)
//assuming dataTable.Rows[i][0] is time, then if the the value is in the
//last hour [DateTime.Now.AddHours(-1)] the if statement will allow the
//point to be plotted, otherwise it wont plot
if (dataTable.Rows[i][0] > DateTime.Now.AddHours(-1)) {
chart1.Series[dataTable.Columns[x].Caption].Points.AddXY(dataTable.Rows[i][0], dataTable.Rows[i][x]);
}
next