Microsoft图表堆积的柱形图存在间隙
|
我正在使用.Net 4.0中的图表库来创建具有多个系列的堆叠式柱形图。我的目标是建立一个直方图,以显示多个系列(教师)每天的动作(报告完成)总数。经常缺少数据(特定老师当天没有活动)。
当系列中缺少数据时,我会在栏上留下空白:
我的代码:
public ActionResult CompletionHistogram(int sid, int width, int height)
{
Site site = SiteRepository.Get(sid);
if (site == null)
return new HttpNotFoundResult();
Chart chart = new Chart();
chart.Height = height;
chart.Width = width;
ChartArea area = chart.ChartAreas.Add(\"Default\");
// Treat each teacher as a series
foreach (Teacher t in site.Teachers)
{
Series series = chart.Series.Add(t.FullName);
series.ChartType = SeriesChartType.StackedColumn;
series.Name = t.FullName;
// Group completions by day (filter out incomplete reports and null timestamps)
var groups = t.StudentReports
.Where<StudentReport>(rep => rep.IsComplete && rep.FirstSaveTimestamp.HasValue)
.GroupBy<StudentReport, DateTime>(rep => rep.FirstSaveTimestamp.Value.Date);
bool hasPoints = false;
foreach (var g in groups)
{
series.Points.AddXY(g.Key, g.Count());
hasPoints = true;
}
series.IsValueShownAsLabel = true;
series.ToolTip = \"#VALX\";
if (hasPoints)
chart.DataManipulator.InsertEmptyPoints(1, IntervalType.Days, series);
}
area.AxisX.LabelStyle.Format = \"ddd M/d\";
return new ChartResult(chart);
}
我该如何删除
没有找到相关结果
已邀请:
3 个回复
捐焦
\“ before.png \”的图片: 现在,删除没有给定x值的数据点的系列注释: (注意!我发现如果将给定x值的点添加到最后使y = 0的值(也就是在保存图像之前),这是行不通的。系列中点的顺序似乎很重要对于StackedColumn,除了研究如何回答此问题(对于此类用户可能是常识)之外,我从未使用过这种类型。
\“ after.png \”的图片: 因此,假设您不能在事实之后添加零点(尽管您可以插入零点?),则需要将代码修改为如下所示:
很抱歉,很长的代码块,但是该示例是必要的,以演示如何使其工作,而不会陷入最后添加空点(其中y = 0)的陷阱,因为这将无法工作。 让我知道您是否需要更多帮助。
宠封钞轰
捐焦