Y 軸に % 、X 軸に DateTime という 4 つのシリーズがある単純な縦棒グラフがあります。X 軸のラベル付けと間隔マークが正しくないことを除いて、すべて正常に機能しています (まあ、誤解を招きます)。列の最初のクラスターは 1 月のデータですが、グラフではクラスターが 2 月のラベルのすぐ上に配置されています。間隔線 (それは正しい名前ですか?) は、1 月のデータのクラスターを通過して、列 1 と 2 が 1 月に、列 3 と 4 が 2 月にあるように見えるため、役に立ちません。 1 月から 7 月までは 4 月が欠落していますが (意図的に)、5 月が欠落している 2 月から 8 月までのように表示されます。
データ
私の質問は次のとおりです。列のクラスターを独自の間隔セクションの中央に配置し、そのすぐ下の X 軸に正しい月のラベルを付けるにはどうすればよいですか? 正しい月が正しいデータの下に表示される限り、間隔線がなくても生活できます。
スプライン、ライン、および書式設定なしでこのチャートを試しましたが、すべて同じ問題があります。ヘルプ。金曜日だし、パブに行けるようにこれを直したい。
更新: リクエストに応じて - コード ビハインド:
// set Y axix range
Chart1.ChartAreas["ChartArea1"].AxisY.Minimum = 0;
Chart1.ChartAreas["ChartArea1"].AxisY.Maximum = 100;
// show y line every x%
Chart1.ChartAreas[0].AxisY.Interval = 10;
// Set axis title
Chart1.ChartAreas["ChartArea1"].AxisX.Title = "Period";
Chart1.ChartAreas["ChartArea1"].AxisY.Title = "Percentage (%)";
// set the x axis date format to short month and year
Chart1.ChartAreas[0].AxisX.IsLabelAutoFit = false;
Chart1.ChartAreas[0].AxisX.LabelStyle.Format = "MMM \n yyyy";
// The legend
Chart1.Legends.Add("Default");
Chart1.Legends["Default"].Docking = Docking.Bottom;
Chart1.Legends["Default"].Alignment = StringAlignment.Center;
// load the template for the basic styles
Chart1.Serializer.IsResetWhenLoading = false;
Chart1.LoadTemplate("SkyBlue.xml");
そしてマークアップ:
<asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1"
Width="600px">
<Series>
<asp:Series Name="thing1" XValueMember="Period"
YValueMembers="thing1">
</asp:Series>
<asp:Series ChartArea="ChartArea1" Name="Team" XValueMember="Period"
YValueMembers="thing2">
</asp:Series>
<asp:Series ChartArea="ChartArea1" Name="Systems" XValueMember="Period"
YValueMembers="thing3">
</asp:Series>
<asp:Series ChartArea="ChartArea1" Name="Env" XValueMember="Period"
YValueMembers="thing4">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnString %>"
SelectCommand="mySP"
SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="ID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>