If you do not call the legend SetLegendItemUniformTextColor() method the color of the text should track that of the source plot object, that color is also the color of the symbol. It turns out that the legend color LegendItemUniformTextColor needs to be set to Color.Empty for that to work, and the software incorrectly sets that default color to Color.Black, so all legend item text colors are black by default. We will change that in the next next revision of the software. In the meantime, call legend.SetLegendItemUniformTextColor(Color.Empty), as in the code below, and that should cause the legend item text to track that of the source plot object.
Font legendFont = new Font("Microsoft Sans Serif", 8, FontStyle.Regular);
ChartAttribute legendAttributes = new ChartAttribute(Color.Gray, 1,DashStyle.Solid);
legendAttributes.SetFillFlag(false);
legendAttributes.SetLineFlag(false);
StandardLegend legend = new StandardLegend(0.01, 0.875, 0.98, 0.075, legendAttributes, StandardLegend.HORIZ_DIR);
legend.AddLegendItem("Energy Companies",ChartObj.CROSS, thePlot1, legendFont);
legend.AddLegendItem("Software Companies", ChartObj.CIRCLE, thePlot3, legendFont);
legend.AddLegendItem("Predicted", ChartObj.LINE, thePlot2, legendFont);
legend.SetLegendItemUniformTextColor(Color.Empty);
chartVu.AddChartObject(legend);