相同类型的数据分多个series展示出来,会显示多个图例。但是属于相同类型要求显示颜色一致,所以图例只需要一个就行。
求大神指导如何排除多余的图例呢!!!
已经解决
用forch循环遍历所有series,以图例txt为条件。当txt名称一样时进行筛选就行。还有就是让相同类型的数据不同series显示时颜色一致,这个如果用系统自动分配是无法获取到颜色的。需要用chart1.ApplyPaletteColors()这个方法才行。下边附上代码:
if (logs.monitorData == "0")
{
if (logs.materialID == materid && chart1.Series[i.ToString()].LegendText!="放料")
{
chart1.Series[i.ToString()].Points.AddXY(DateTime.Parse(time.ToString("HH:mm:ss.fff")), logs.actualweight);
}
else
{
chart1.ApplyPaletteColors();//使用这个方法进行附色,下边是可查询的 materid = logs.materialID;
i++;
chart1.Series.Add(i.ToString());
chart1.Series[i.ToString()].ChartType = SeriesChartType.Area; chart1.Series[i.ToString()].XValueType = ChartValueType.DateTime; chart1.Series[i.ToString()].BorderWidth = 2;
chart1.Series[i.ToString()].LegendText = logs.materialID; chart1.Series[i.ToString()].IsVisibleInLegend = true; chart1.Series[i.ToString()].Points.AddXY(DateTime.Parse(time.ToString("HH:mm:ss.fff")), logs.actualweight);
for (int s = 0; s < chart1.Series.Count; s++)
{
if (chart1.Series[i.ToString()].LegendText == chart1.Series[s].LegendText)
{
chart1.Series[s].IsVisibleInLegend = false;
chart1.Series[i.ToString()].IsVisibleInLegend = true; Color color = chart1.Series[s].Color;
chart1.Series[i.ToString()].Color = color; }
}
}