【问题标题】:Adding x axis string value in a chart instead of number在图表中添加 x 轴字符串值而不是数字
【发布时间】:2015-08-07 15:07:55
【问题描述】:

我正在尝试设计一个图表,其中 x 代表异常消息,y 代表它发生的次数。

我无法在每个条形下方显示 x 值(异常消息),我还尝试标记 x 并为每个标签设置范围,但条形不是在此标签上生成而是远离它们。

这是我的代码示例

 reportChart.Series.Add(exception);
 reportChart.Series[exception].SetDefault(true);
 reportChart.Series[exception].Enabled = true;
 reportChart.Series[exception].Points.AddXY(exception,ExceptionMessages[exception]);

ExceptionMessages[exception] 是一个字典,其中包含当前异常发生次数的值。

【问题讨论】:

    标签: c# .net winforms charts mschart


    【解决方案1】:

    你可以这样做:

        private void Form1_Load(object sender, EventArgs e)
        {
            Dictionary<string, int> ExceptionMessages = new Dictionary<string, int>();
    
            ExceptionMessages.Add("Exception 1", 20);
            ExceptionMessages.Add("Exception 2", 50);
            ExceptionMessages.Add("Exception 3", 30);
            ExceptionMessages.Add("Exception 4", 60);
            ExceptionMessages.Add("Exception 5", 10);
    
            foreach (KeyValuePair<string, int> exception in ExceptionMessages)
                chart1.Series[0].Points.AddXY(exception.Key, exception.Value);
        }
    

    图表:

    编辑:添加一些逻辑来分配颜色,如下所示:

            foreach (KeyValuePair<string, int> exception in ExceptionMessages)
            {
                chart1.Series[0].Points.AddXY(exception.Key, exception.Value);
    
                //add business logic for your color here
                if (exception.Key == "Exception 4")
                    chart1.Series[0].Points[chart1.Series[0].Points.Count - 1].Color = Color.Red;
            }
    

    图表:

    【讨论】:

    • 感谢我的这项工作,但是有没有一种方法可以让我在不同的系列中处理每个例外情况,我之前的做法是这样的,但仍然有标签,就像你给我看的例子一样,如果图表中有大量数据,这将使我有机会更快地通过颜色找到它
    • 你不应该添加大量的系列,而是给每个点一个单独的颜色!
    • 这可能是一个很好的解决方案,但由于我无法控制我将获得的不同异常的数量,有没有办法动态地做到这一点
    • 谢谢我能够使用 fromArgb 动态创建颜色,因为异常列表是动态创建的,并且没有关于可能是什么的信息,所以我使用随机生成每列的 RGB 颜色。非常感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    相关资源
    最近更新 更多