Как нарисовать многострочный график ?
Привет Эксперты,
Я должен нарисовать многострочный график. эта диаграмма будет состоять из 3 строк для этих 3 серий я беру 3 разные таблицы для подготовки данных. По отдельности я получаю линию на графике, но все вместе я не получаю. Пожалуйста, помогите мне выяснить, где я делаю ошибку в своем коде.
Что я уже пробовал:
1) Below is the design page aspx. <pre lang="HTML"><pre><asp:Chart ID="Chart1" runat="server" Width="1059px"> <Series> <asp:Series Name="Series1" ChartType="Line" LegendText="Sap"></asp:Series> </Series> <Series> <asp:Series Name="Series2" ChartType="Line" LegendText="Raildocs"></asp:Series> </Series> <Series> <asp:Series Name="Series3" ChartType="Line" LegendText="RIC"></asp:Series> </Series> <ChartAreas> <asp:ChartArea Name="ChartArea1"></asp:ChartArea> </ChartAreas> </asp:Chart>
2) Ниже приведен код, стоящий за code. cs.
public void ProDocs() { DataSet result = new DataSet(); DataTable dtSap = new DataTable(); DataTable dtRic = new DataTable(); DataTable dtRailDocs = new DataTable(); dtSap.Columns.Add("SapPlm", typeof(int)); dtSap.Columns.Add("Date", typeof(DateTime)); dtRailDocs.Columns.Add("RailDocs", typeof(int)); dtRailDocs.Columns.Add("Date", typeof(DateTime)); dtRic.Columns.Add("RIC", typeof(int)); dtRic.Columns.Add("Date", typeof(DateTime)); using (ProDocsEntities objcontext = new ProDocsEntities()) { DateTime startDate = new DateTime(DateTime.Today.Year, 1, 1); for (int i = 1; i <= 53; i++) { //DateTime startDate = new DateTime(); // DateTime endDate = new DateTime(); DateTime endDate = startDate.AddDays(7 - (int)(startDate.DayOfWeek)); var SapData = (from a in objcontext.FileProgresses join pg in objcontext.V01_PG on a.ProDocsId equals (int?)pg.ID into pgs from g in pgs.DefaultIfEmpty() join pr in objcontext.V01_PR on g.ID equals pr.PAGE into prs from p in prs.DefaultIfEmpty() where a.FullPath.Contains("2014KR0055") && (a.Received >= startDate && a.Received <= endDate) && (a.AvailableInProDocs != null) select new { a.Id, a.Downloaded, a.Unsupported, a.ProcessByAbbyy, a.AvailableInProDocs, a.AvailableInDocs2Go, a.LocDocMapping }).ToArray(); int SapCount = SapData.Count(); var RaildocsData = (from a in objcontext.FileProgresses join pg in objcontext.V01_PG on a.ProDocsId equals (int?)pg.ID into pgs from g in pgs.DefaultIfEmpty() join pr in objcontext.V01_PR on g.ID equals pr.PAGE into prs from p in prs.DefaultIfEmpty() where a.FullPath.Contains("2014KR0062") && (a.Received >= startDate && a.Received <= endDate) && (a.AvailableInProDocs != null) select new { a.Id, a.Downloaded, a.Unsupported, a.ProcessByAbbyy, a.AvailableInProDocs, a.AvailableInDocs2Go, a.LocDocMapping }).ToList(); int raildocCount = RaildocsData.Count(); var RicData = (from a in objcontext.FileProgresses join pg in objcontext.V01_PG on a.ProDocsId equals (int?)pg.ID into pgs from g in pgs.DefaultIfEmpty() join pr in objcontext.V01_PR on g.ID equals pr.PAGE into prs from p in prs.DefaultIfEmpty() where a.FullPath.Contains("2015KR0050") && (a.Received >= startDate && a.Received <= endDate) && (a.AvailableInProDocs != null) select new { a.Id, a.Downloaded, a.Unsupported, a.ProcessByAbbyy, a.AvailableInProDocs, a.AvailableInDocs2Go, a.LocDocMapping }).ToList(); int RicCount = RicData.Count(); dtSap.Rows.Add(SapCount, startDate); dtRailDocs.Rows.Add(raildocCount,startDate); dtRic.Rows.Add(RicCount,startDate); startDate = endDate; } Chart1.Series[1].XValueMember = "Date"; Chart1.Series[1].YValueMembers = "SapPlm"; Chart1.Series[1].Color = Color.Blue; Chart1.DataSource = dtSap; Chart1.Series[2].XValueMember = "Date"; Chart1.Series[2].YValueMembers = "SapPlm"; Chart1.DataSource = dtRailDocs; Chart1.Series[2].Color = Color.Green; Chart1.Series[3].XValueMember = "Date"; Chart1.Series[3].YValueMembers = "RIC"; Chart1.Series[3].Color = Color.Red; Chart1.DataSource = dtRic; } }
Заранее спасибо
Ralf Meier
Если вы хотите, чтобы внутри вашей диаграммы были разные линии, вы должны добавить свои данные в ряд.
Возможно, также возможно (вы должны попробовать это сделать) добавить к диаграмме более одной таблицы данных.Источник данных - но то, что вы делаете, это назначаете свой DataTable свойству...