首页 > IT职业 > IT生活 > js图表控件:highcharts的应用
用图表来表示数据,能够使我们以直观的方式来获取更多的信息,这也是很多项目中会用到的技术。最近,公司让做个饼形图,研究了几天的时间,小有成果,在此与大家分享一下。
highcharts效果展示图网址:http://www.highcharts.com/demo。
饼形图。
xml数据源:
前台代码:
后台代码:
protected string str = "";
protected void Page_Load(object sender, EventArgs e)
{
LoadData();
}
protected void LoadData()
{
XmlDocument myDoc = new XmlDocument();
myDoc.Load(Server.MapPath("DB_51aspx.xml"));
XmlNode xn = myDoc.SelectSingleNode("//VoteInfo[ID='2']");//读取数据源
XmlNodeList xnl = xn.SelectNodes("Item");
double[] angle = new double[xnl.Count];//百分比
string[] angle2 = new string[xnl.Count];
string[] sTxt = new string[xnl.Count];//名称
decimal[] data = new decimal[xnl.Count];//数量
double AllCount = 0;//总数
for (int i = 0; i {
AllCount += Convert.ToSingle(xnl.Item(i).SelectSingleNode("Count").InnerText);
}
double sum = 0;
for (int i = 0; i {
XmlNode xn0 = xnl.Item(i);
if (i != xnl.Count - 1)
{
angle[i] = Convert.ToDouble((Convert.ToDouble(xn0.SelectSingleNode("Count").InnerText) / AllCount * 100).ToString("#,##0.00"));//所占百分比
sum += angle[i];
angle2[i] = (Convert.ToDouble(xn0.SelectSingleNode("Count").InnerText) / AllCount * 100).ToString("#,##0.00");
}
else
{
angle[i] = Convert.ToDouble((100 - sum).ToString("#,##0.00"));
angle2[i] = (100 - sum).ToString("#,##0.00");
}
sTxt[i] = xn0.SelectSingleNode("Title").InnerText;
data[i] = Convert.ToDecimal(xn0.SelectSingleNode("Count").InnerText);
str += "[" + "'" + sTxt[i] + ":" + data[i] + "(元)'," + data[i] + "]" + ",";
}
str = str.Remove(str.Length - 1, 1);
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/75/viewspace-2814975/ ,如需转载,请注明出处,否则将追究法律责任。