开发者

Graphing data of survey in charts

开发者 https://www.devze.com 2023-04-13 09:23 出处:网络
I want to make a survey with asp.net and c#. It is clear that I can do it. But for the results I want to show them in a pie-chart and histogram.

I want to make a survey with asp.net and c#.

It is clear that I can do it. But for the results I want to show them in a pie-chart and histogram.

The questions have only two answers "yes" and "no". In pie-chart the whole percentage of "yes" and perce开发者_开发技巧ntage of "no" like %55 "yes", %45 "no".

In histogram I want to show each question which is divided into 2 part ("yes" and "no").

In order to do these (pie-chart and the histogram), should I use component like Telerik? Or can I do this with drawing library in .NET?


You can use Asp.net Chart controls for representing the data in pie charts......and it also depends on databinding.

if you are using datatable to get data from database then asp.net chart controls much better ...

would you pls take a look at this link for more information....

https://web.archive.org/web/20211020111731/https://www.4guysfromrolla.com/articles/120804-1.aspx

EDIT

This is function getting data from database..

     public  DataTable GetVisits(System.DateTime startdate , System.DateTime enddate)
     { 

         const string sql  = @"SELECT CONCAT(UPPER(SUBSTRING(visit_Status, 1, 1)), SUBSTRING(visit_Status FROM 2))  as Status, COUNT('x') AS Visits
                              FROM visits
                              WHERE visit_Date BETWEEN @startdate AND @enddate
                              GROUP BY visit_Status";

         return sqlexecution(startdate, enddate, sql);
     }

I am representing this data in stackcolumn chart.

if you want to represent in pie chart , you can change in code

     public void DrawMembersvisits(Chart targetchartcontrol, DateTime startdate, DateTime enddate)
    {
        chart1 = targetchartcontrol;

        Series series = null;
        Title title;
        string area = null;

        chart1.ChartAreas.Clear();
        chart1.Series.Clear();
        chart1.Titles.Clear();

        DataTable membervisits = null;

        area = "Visits";
        chart1.ChartAreas.Add(area);
        series = chart1.Series.Add(area);
        series.ChartArea = area;

        title = chart1.Titles.Add("Member Visits");


       title.Alignment = ContentAlignment.MiddleCenter;
       title.Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Regular);



        title.DockedToChartArea = area;
        chart1.Titles.Add("").DockedToChartArea = area;

        foreach (Title titles in chart1.Titles)
        {
            titles.IsDockedInsideChartArea = false;

        }

        foreach (ChartArea areas in chart1.ChartAreas)
        {
            areas.Area3DStyle.Enable3D = true;
            areas.AxisX.LabelStyle.IsEndLabelVisible = false;                                                                                                               areas.AxisX.LabelStyle.Angle = -90;
            areas.AxisX.LabelStyle.IsEndLabelVisible = true;
            areas.AxisX.LabelStyle.Enabled = true;


        }

        foreach (Legend legends in chart1.Legends)
        {
            legends.Enabled = false;

        }

        foreach (Series serie in chart1.Series)
        {
            serie.ChartType = SeriesChartType.StackedColumn; 

           // change here to get the pie charts
              // charttypes.ChartType = SeriesChartType.Pie;
              // charttypes["LabelStyle"] = "Outside";
              // charttypes["DoughnutRadius"] = "30";
             //  charttypes["PieDrawingStyle"] = "SoftEdge";
             //  charttypes.BackGradientStyle = GradientStyle.DiagonalLeft;


                serie["LabelStyle"] = "Outside";
               serie["ColumnDrawingStyle"] = "SoftEdge";
            serie["LabelStyle"] = "Top";
            serie.IsValueShownAsLabel = true;
            serie.BackGradientStyle = GradientStyle.DiagonalLeft;

        }


        membervisits = visistsdataf.GetVisits(startdate, enddate);

        chart1.Series[0].Points.DataBindXY(membervisits.Rows, "Status", membervisits.Rows, "Visits");

        foreach (Series chartSeries in chart1.Series)
        {
            foreach (DataPoint point in chartSeries.Points)
            {
                switch (point.AxisLabel)
                {
                    case "Accepted": point.Color = Color.Green; break;
                    case "Refused": point.Color = Color.Red; break;

                }

                point.Label = string.Format("{0:0} - {1}", point.YValues[0], point.AxisLabel);
            }
        }


    }
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号