按名称设置asp.net饼图中的颜色

Ben*_*Ben 4 c# asp.net charts

我有一个图表控件来衡量客户满意度.

可能的值是Happy,Neutral和Sad.(例如,一组可能的值可能是:快乐(23),中立(12),悲伤(19))

我希望快乐永远是绿色,中性永远是橙色和悲伤永远是红色(例如像RAG状态)

我这样设置颜色:

fbChart.Palette = ChartColorPalette.None;
fbChart.PaletteCustomColors = new Color [] {Color.Green,Color.Orange,Color.Red};

如果所有三个可能的选项都具有值,则此方法可以正常工作,但如果只有一个或两个具有值,则颜色会拧紧.(例如,如果我有快乐(12)和悲伤(9)但没有中立,那么颜色会变成绿色的快乐和橙色的悲伤.)

有没有办法可以将颜色与名称联系起来(例如Happy/Neutral/Sad)?

编辑:

数据从数据表加载到图表中:

    var fb = from f in db.tl_feedbacks
             where f.timestamp >= new DateTime(fromYear, fromMonth, fromDay, 0, 0, 0) &&                f.timestamp <= new DateTime(toYear, toMonth, toDay, 23, 59, 59)  
               group f by f.tl_feedback_score.score into grp
               select new
               {
                     Score = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(grp.Key),  
                     Count = grp.Select(x => x.tl_feedback_score.score).Count()  
               };  
              fbChart.Series["Feedback"].XValueMember = "Score";  
              fbChart.Series["Feedback"].YValueMembers = "Count";

              fbChart.DataSource = fb;
              fbChart.DataBind();
Run Code Online (Sandbox Code Playgroud)

Eni*_*ate 5

我假设您使用datatable将数据绑定到图表,并且您正在使用asp.net图表控件......

我希望这个解决方案能帮到你

foreach (Series charts in fbchart.Series)
{
    foreach (DataPoint point in charts.Points)
    {
       switch (point.AxisLabel)
        {
           case "Neutral": point.Color = Color.Red; break;
           case "Happy": point.Color = Color.Green; break;
           case "Sad": point.Color = Color.Orange; break;
         }
         point.Label = string.Format("{0:0} - {1}", point.YValues[0], point.AxisLabel);

    }
 }  
Run Code Online (Sandbox Code Playgroud)

以上代码的示例图像(图表)就像这样......下面使用饼图控件划分具有成员类型的区域