2017-02-20 1 views
1

Я хочу отобразить 2 набора данных на одной оси диаграммы. На оси X я буду отображать UserID и по оси Y отметки Avg всех документов, проверенных пользователем. Но я также хочу отобразить количество буклетов, для которых avg был получен для каждого пользователя. Как это сделать? Я хочу, чтобы диаграмма выглядела так: enter image description hereКак отобразить 2 набора данных на одной оси диаграммы ASP.NET

Где числа, кроме числа авг, - количество документов, проверенных конкретным пользователем.

До сих пор у меня есть это:

 private void Bindchart() 
    { 

     string msg = string.Empty; 
     try 
     { 
      connection.Open(); 
      SqlCommand cmd = new SqlCommand("select Teacher_code, sum(Total_marks)/ count(*) as avgmarks , COUNT(*) as no_of_copies from " + connection.Database + "_transctn where sub_code='" + DropDown_Subjects.SelectedValue + "' and Teacher_code!='' group by Teacher_code", connection); 

      SqlDataAdapter da = new SqlDataAdapter(cmd); 
      DataSet ds = new DataSet(); 
      da.Fill(ds); 

      DataTable ChartData = ds.Tables[0]; 

      //storing total rows count to loop on each Record 
      string[] XPointMember = new string[ChartData.Rows.Count]; 


      decimal[] YPointMember = new decimal[ChartData.Rows.Count]; 

      int totalrows = ChartData.Rows.Count; 

      if (totalrows > 0) 
      { 
       for (int count = 0; count < ChartData.Rows.Count; count++) 
       { 
        //storing Values for X axis 
        XPointMember[count] = ChartData.Rows[count]["Teacher_code"].ToString(); 
        //storing values for Y Axis 
        YPointMember[count] = Convert.ToDecimal(ChartData.Rows[count]["avgmarks"]); 




       } 
       //binding chart control 
       Chart1.Series[0].Points.DataBindXY(XPointMember, YPointMember); 

       //Setting width of line 
       Chart1.Series[0].BorderWidth = 5; 
       //setting Chart type 
       Chart1.Series[0].ChartType = SeriesChartType.Column; 
       //Chart1.Series[0].ChartType = SeriesChartType.StackedColumn; 

       //Hide or show chart back GridLines 
       Chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = true; 
       Chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = true; 

       //Enabled 3D 
       //Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true; 
       connection.Close(); 
      } 
     } 

ответ

1

Попробуйте это:

protected void Page_Load(object sender, EventArgs e) 
    { 
     connection.Open(); 

     SqlCommand cmd = new SqlCommand("Your SQL here.", connection); 

     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 

     DataTable ChartData = ds.Tables[0]; 

     Chart1.Series[0].Points.DataBind(ChartData.DefaultView, "Teacher_code", "avgmarks", ""); 

     for (int i = 0; i < Chart1.Series[0].Points.Count; i++) 
      Chart1.Series[0].Points[i].Label = string.Format("{0:0.00} ({1})", ChartData.Rows[i]["avgmarks"], ChartData.Rows[i]["no_of_copies"]); 

     connection.Close(); 
    } 

enter image description here

+0

..need помощь с этим вопросом: https://stackoverflow.com/questions/45078271/pie-chart-only-display-yvaluemembers –

+0

Хорошо, я посмотрю на это ... но помните, я помог вам с этим вопросом, и вы не потрудились проголосовать за мой ответ ...;) вопросы/ответы - это ri ght вещь, пожалуйста, посмотрите [ЗДЕСЬ] (https://stackoverflow.com/help/privileges/vote-up). Обратите внимание, что «кто-то» поднял этот вопрос на ваш вопрос ... угадайте, кто ...: O) – jsanalytics

+0

уверен :) .. но у меня еще недостаточно репутации –

Смежные вопросы