场景


参考上面实现多条Y轴的基础上,想要在生成曲线的时候根据曲线的条数生成不同颜色的曲线,效果如下

 

Winform中设置ZedGraph在生成多条曲线时随机采用不同的颜色_ZedGraph

注:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

首先新建一个想要作为曲线颜色的Color的list

List<Color> colorList = new List<Color>(){
Color.Blue,
Color.Red,
Color.Green,
Color.Magenta,
Color.MediumBlue,
Color.BlueViolet,
Color.Maroon,
Color.Chartreuse,
Color.Aqua,
Color.Indigo,
Color.Aquamarine,
Color.OrangeRed,
Color.Sienna,
Color.SeaGreen,
Color.Black,
Color.OliveDrab,
Color.Purple,
Color.Brown,
Color.Navy,
Color.BurlyWood,
Color.MediumSpringGreen,
Color.Chocolate,
Color.Salmon,
Color.SaddleBrown,
Color.RoyalBlue,
Color.Coral,
Color.Crimson,
Color.Tomato,
Color.Cyan,
Color.Lime,
Color.MediumVioletRed,
Color.MidnightBlue,
Color.Olive,
Color.Orange,
Color.SaddleBrown,
Color.HotPink,
};

然后将这个list转换为数组

Color[] colors = colorList.OrderBy(p => Guid.NewGuid().ToString()).ToArray();

然后在生成每一条曲线前通过如下获取Color对象

Color curveColor = new Color();
curveColor = colors[index % colors.Length];

其中index是当前曲线的索引,即在循环生成曲线时的索引。

然后在生成曲线时就可以使用curveColor作为曲线的颜色。

LineItem myCurve = myPane.AddCurve("标题", list, curveColor, symbolType);