There is no way to clear all objects that use a specific coordinate system (transform).
There are many other ways of accomplishing what you describe. We would probably just program the InitializeChart routine to plot what ever the current data is. If there is no data, no data is plotted, as in the initial case. Each time InitializeChart is called, preceed the call with with a call to the ChartView.ResetChartObjectList method, which will clear out all objects in the ChartView. If you want the NumericLabels, create them and add them to the ChartView, if you don't want them, then don't add them.
Your suggestion to use DeleteChartObject would also work.
NumericLabels [] labelarray = new NumericLabels[NumDays];
for (int i = 0; i < NumDays; i++)
{
labelarray[i] = new NumericLabel(
transform, font, ds[i].GetY(), ds[i].GetX(), 1,
ChartObj.PHYS_POS, ChartSupport.DECIMALFORMAT, 2,
ChartSupport.JUSTIFY_CENTER, ChartSupport.JUSTIFY_CENTER, 0);
this.AddChartObject(labelarray[i]);
}
.
.
.
for (int i = 0; i < NumDays; i++)
{
this.DeleteChartObject(labelarray[i]);
}
Or, you could just disable/renable the label objects.
.
.
.
for (int i = 0; i < NumDays; i++)
{
labelarray[i].ChartObjEnable = ChartObj.OBJECT_DISABLE;
// labelarray[i].ChartObjEnable = ChartObj.OBJECT_ENABLE;
}