我在Asp.net页面上显示列类型图表。代码如下:
private DataSet FetchDummyChartData()
{
DataSet ds = new DataSet();
DataTable table = new DataTable();
table.Columns.Add("Product", typeof(string));
table.Columns.Add("Status", typeof(string));
table.Columns.Add("Count", typeof(int));
table.Rows.Add("FRA", "Completed", 20);
table.Rows.Add("FRA", "Exceptions", 10);
table.Rows.Add("Swaption", "Exceptions", 15);
table.Rows.Add("Swaption", "Completed", 50);
table.Rows.Add("Cap/Floor", "Exceptions", 40);
table.Rows.Add("Cap/Floor", "Approval Pending", 10);
table.Rows.Add("Single currency swap", "Completed", 70);
table.Rows.Add("Single currency swap", "Approval Pending", 30);
table.Rows.Add("Cross currency swap", "Completed", 60);
table.Rows.Add("Cross currency swap", "Exceptions", 20);
table.Rows.Add("IRS", "Completed", 40);
table.Rows.Add("IRS", "Approval Pending", 70);
table.Rows.Add("Single currency Option", "Completed", 70);
table.Rows.Add("Single currency Option", "Exceptions", 50);
table.Rows.Add("Some Derivative", "Completed", 40);
table.Rows.Add("Some Derivative", "Exceptions", 10);
table.Rows.Add("Some Derivative", "Approval Pending", 50);
ds.Tables.Add(table);
return ds;
}
Chart2.DataBindCrossTable(new DataView(FetchDummyChartData().Tables[0]), "Status", "Product", "Count", null);
问题在于,如果X轴上的项目包含大于3-4个项目(此处项目“FRA”,“IRS”等表示X轴),则不显示最后一列。请注意,这是一个多线图表。这是非常奇怪的行为。没有CSS /空间问题,我查了一下。
以下是截图:
答案 0 :(得分:1)
问题是您是使用Status
对数据进行分组,但Status
上的每个Product
都没有X axis
个值。所以系列中有EmptyPoints
。现在你可以使用
Chart2.DataManipulator.InsertEmptyPoints(1, IntervalType.Days, "series name");
但IntervalType
是enum
预定义的Number
,Years
,Months
等,但我们的IntervalType
应为{{1} }}。我还没有检查是否可以定义自定义Status
,因此最好的办法是检查表格IntervalType
中每个Status
的{{1}}条目是否缺失Product
用默认值填充它们,然后图表将正确显示。
DataTable