0
我想用asp.net和c#進行調查。圖表調查數據圖表
很明顯,我可以做到。但是,我想用餅圖和直方圖來展示結果。
問題只有兩個答案「是」和「否」。 在餅圖中,「是」的整個百分比和「否」的百分比如%55「是」,%45「否」。
在直方圖中,我想顯示每個問題分爲兩部分(「是」和「否」)。
爲了做到這些(餅圖和直方圖),我應該使用像Telerik這樣的組件嗎? 或者我可以在.NET中使用繪圖庫來做到這一點嗎?
我想用asp.net和c#進行調查。圖表調查數據圖表
很明顯,我可以做到。但是,我想用餅圖和直方圖來展示結果。
問題只有兩個答案「是」和「否」。 在餅圖中,「是」的整個百分比和「否」的百分比如%55「是」,%45「否」。
在直方圖中,我想顯示每個問題分爲兩部分(「是」和「否」)。
爲了做到這些(餅圖和直方圖),我應該使用像Telerik這樣的組件嗎? 或者我可以在.NET中使用繪圖庫來做到這一點嗎?
您可以使用Asp.net Chart控件來表示餅圖中的數據......它也取決於數據綁定。
如果你正在使用的數據表,以獲得從數據庫然後asp.net圖表控件更好的數據...
你會請看看這個鏈接獲取更多信息....
http://www.4guysfromrolla.com/articles/120804-1.aspx
EDIT
這是從數據庫功能獲取數據..
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);
}
我用堆列表表示這個數據。
如果你想在餅圖來表示,您可以在代碼中改變
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);
}
}
}
謝謝errorstacks,我認爲它可以幫助我.. – ToUpper
,如果你認爲這是真正的幫助你,然後將其標記爲一個答案... –
我是newby所以謝謝你的建議.. – ToUpper