DevExpress的ChartControl虽然还不能完全代替Office图表(例如它暂时不支持添加数据表),但它算同类产品中相当优秀的了,下面是对0值和空值的处理。
DataTable zeroDT = new DataTable("zeroDT"); zeroDT.Columns.Add("X", typeof(int)); zeroDT.Columns.Add("Y", typeof(int)); zeroDT.Rows.Add(new object[] { 1, 5 }); zeroDT.Rows.Add(new object[] { 2, 4 }); zeroDT.Rows.Add(new object[] { 3, 0 }); zeroDT.Rows.Add(new object[] { 4, 1 }); zeroDT.Rows.Add(new object[] { 5, 2 }); DataTable nullDT = new DataTable("nullDT"); nullDT.Columns.Add("X", typeof(int)); nullDT.Columns.Add("Y", typeof(int)); nullDT.Rows.Add(new object[] { 1, 5 }); nullDT.Rows.Add(new object[] { 2, 4 }); nullDT.Rows.Add(new object[] { 3, null }); nullDT.Rows.Add(new object[] { 4, 1 }); nullDT.Rows.Add(new object[] { 5, 2 }); chartControl1.DataSource = zeroDT; chartControl1.Series[0].ValueDataMembers[0] = "Y"; chartControl1.Series[0].ArgumentDataMember = "X"; chartControl2.DataSource = nullDT; chartControl2.Series[0].ValueDataMembers[0] = "Y"; chartControl2.Series[0].ArgumentDataMember = "X";