0

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/スペースの問題はありません。確認しました。

スクリーンショットは次のとおりです。 ここに画像の説明を入力

4

1 に答える 1

1

問題は、データをグループ化していますが、それぞれに値Statusがないことです。だからシリーズがあります。今、あなたは使うことができますStatusProductX axisEmptyPoints

Chart2.DataManipulator.InsertEmptyPoints(1, IntervalType.Days, "series name");

しかし、IntervalTypeは、などで事前定義されていますが、でenumある必要があります。custom を定義できるかどうかはまだ確認していません。そのため、最善の方法は、テーブルで欠落しているエントリを確認し 、デフォルト値を入力することです。そうすれば、チャートが正しく表示されます。NumberYearsMonthsIntervalTypeStatusIntervalTypeStatusProductDataTable

table.Rows.Add("FRA", "Completed", 20);
table.Rows.Add("FRA", "Exceptions", 10);
table.Rows.Add("FRA", "Approval Pending", 0);

table.Rows.Add("Swaption", "Exceptions", 15);
table.Rows.Add("Swaption", "Completed", 50);
table.Rows.Add("Swaption", "Approval Pending", 0);

table.Rows.Add("Cap/Floor", "Exceptions", 40);
table.Rows.Add("Cap/Floor", "Approval Pending", 10);
table.Rows.Add("Cap/Floor", "Completed", 0);

table.Rows.Add("Single currency swap", "Completed", 70);
table.Rows.Add("Single currency swap", "Approval Pending", 30);
table.Rows.Add("Single currency swap", "Exceptions", 0);

table.Rows.Add("Cross currency swap", "Exceptions", 20);
table.Rows.Add("Cross currency swap", "Completed", 0);
table.Rows.Add("Cross currency swap", "Approval Pending", 0);

table.Rows.Add("IRS", "Completed", 40);
table.Rows.Add("IRS", "Approval Pending", 70);
table.Rows.Add("IRS", "Exceptions", 0);

table.Rows.Add("Single currency Option", "Completed", 70);
table.Rows.Add("Single currency Option", "Exceptions", 50);
table.Rows.Add("Single currency Option", "Approval Pending", 0);

table.Rows.Add("Some Derivative", "Completed", 40);
table.Rows.Add("Some Derivative", "Exceptions", 10);
table.Rows.Add("Some Derivative", "Approval Pending", 50);
于 2013-08-07T08:57:21.020 に答える