开发者

Graphing data of survey in charts

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜