首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

zedGraph柱状图展示不面颜色

2012-12-21 
zedGraph柱状图显示不面颜色用zedGraph画柱状图,现在要实现Y轴大于100显示为红色,小于100则用其它颜色展现

zedGraph柱状图显示不面颜色
用zedGraph画柱状图,现在要实现Y轴大于100显示为红色,小于100则用其它颜色展现,请问zedGraph能为各个数据点设置不同的颜色吗?没找到相关属性,最近被zedGraph搞得头大。
[最优解释]
没有直接的属性可以设置,倒是可以把大小于100的数据用两个数组来存取,可参考:

        public void CreateChart(ZedGraphControl zgc)
        {
            GraphPane myPane = zgc.GraphPane;
            myPane.XAxis.Title.IsVisible = false;
            myPane.YAxis.Title.Text = "Value";
           
            string[] xLables = { "标签1", "标签2", "标签3", "标签4", "标签5", "标签6" };
            /* 测试数据,注意这里的数据控制,两个数组中的两个对应项
             * 务必保持一个值为0:
             * 比如这里的y1[0]=110,则y2[0]=0;y2[1]=99,则y1[1]=0 */
            double[] y1 = { 110, 0, 120, 0, 0, 123 }; //用来保存大于100的数据
            double[] y2 = { 0, 99, 0, 35, 80, 0 }; //用来保存小于100的数据

            // 创建Curve1,显示红色的柱子
            CurveItem myCurve = myPane.AddBar("Curve 1", null, y1, Color.Red);
            // 创建Curve2,显示绿色的柱子 
            myCurve = myPane.AddBar("Curve 2", null, y2, Color.Green);

            // 设置x轴为文本显示
            myPane.XAxis.Type = AxisType.Text;
            // 设置x轴文本标签值
            myPane.XAxis.Scale.TextLabels = xLables;
            // 设置x轴标签字体
            myPane.XAxis.Scale.FontSpec.Family = "华文行楷";

            // 为每个“柱子”上方添加值标签
            for (int i = 0; i < y1.Length; i++)   
            {
                double Y = y1[i] == 0 ? y2[i] : y1[i];   
                TextObj text = new TextObj(Y.ToString(), (i + 1), Y + 3.0);

                text.FontSpec.Border.IsVisible = false;
                text.FontSpec.Fill.IsVisible = false;



                myPane.GraphObjList.Add(text);
            }
            myPane.BarSettings.Type = BarType.SortedOverlay;         

            // 设置背景色
            myPane.Chart.Fill = new Fill(Color.White, Color.LightGoldenrodYellow, 45.0F);

            zgc.AxisChange();
        }



[其他解释]
效果图如下:


[其他解释]
效果不错,我试下先。
[其他解释]
追加分再请教一个问题,如何让zedGraphX轴为DateAsOrdinal时让它起始位置为最小日期位置开始画线,而不是从左边开始,如下图:

Date类型就可以从它的最小日期开始画线

DateAsOrdinal类型却是从最左边开始画起的,不符合要求,有办法让它也从最小日期开始而不是从最左边开始画线吗?不能用Date类型因为股票节假日是不交易的,没有数据K线不连续(要是能用Date类型并且K线连续就最理想了,呵呵!)。
[其他解释]
可以在图中画一条  y=100  的线,设置线条颜色、粗细       同样可以达到这样的效果

网上有过这样的Demo
[其他解释]
柱状图的颜色可以不是渐变色吗?
[其他解释]
柱状图的颜色可以不是渐变色吗?
引用:
效果图如下:

热点排行