Установить цвета в круговой диаграмме asp.net по имени - PullRequest
4 голосов
/ 11 октября 2011

У меня есть элемент управления диаграммой, который измеряет удовлетворенность клиентов.

Возможные значения: Happy, Neutral и Sad. (например, возможный набор значений может быть: Happy (23), Neutral (12), Sad (19))

Я хочу, чтобы Happy всегда был Зелёным, Нейтральный - всегда оранжевым, а Грустный - красным (например, как статус RAG)

Я устанавливаю цвета так:

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

Это прекрасно работает, если все три возможных варианта имеют значения, но если есть только один или два значения, цвета облажаются. (Например, если у меня есть Happy (12) и Sad (9), но нет нейтрального, цвета получаются зелеными для Happy и оранжевыми для Sad.)

Есть ли способ связать цвета с именем (например, 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();

1 Ответ

5 голосов
/ 11 октября 2011

Я предполагаю, что вы привязываете данные к диаграммам с использованием данных и используете элементы управления диаграммами 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);

    }
 }  

, и пример изображения (диаграммы) для приведенного выше кода выглядит следующим образом ... Ниже dividing areas with membership types using pie chart controls

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...