У меня есть прямая столбчатая диаграмма с 4 рядами на ней,% по оси Y и DateTime по оси X. Все работает нормально, за исключением того, что маркировка оси X и отметки интервалов неверны (ну, вводят в заблуждение). Первый кластер столбцов - это данные за январь, однако диаграмма помещает кластер непосредственно поверх метки февраля. Линия интервала (это правильное имя?) Тоже не помогает, так как она проходит через кластер данных января, из-за чего создается впечатление, что столбцы 1 и 2 находятся в январе, а столбцы 3 и 4 - в феврале. Используемые данные запускаются с С января по июль, апрель пропущен (намеренно), однако график показывает, что он длится с февраля по август без мая.
Данные
Итак, мои вопросы: как я могу центрировать кластеры столбцов в их собственном интервальном разделе с правильной меткой месяца на оси 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>