我有一个图表控件来衡量客户满意度.
可能的值是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)
我假设您使用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)
以上代码的示例图像(图表)就像这样......下面
| 归档时间: |
|
| 查看次数: |
6469 次 |
| 最近记录: |