Существует прекрасная возможность формировать динамические графики на сайтах ASP.NET с поддержкой библиотек NetFrameWork. Делается просто, подключаем библиотеки:
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
Для примера задаем значения, цвета и описания легенды:
Dim arrData() As Integer = {75, 45, 19, 10, 55} ' значения
Dim arrColor() As Object = {Color.Salmon, Color.SeaGreen, Color.Gold, Color.Maroon, Color.Orchid}
Dim arrTitle() As String = {"Значение 1", "Значение 2", "Значение 3", "Значение 4", "Значение 5"}
Вычисляем сумму значений массива:
For i = 0 To arrData.GetUpperBound(0)
total = total + arrData(i)
Next
Вычисляем проценты:
For i = 0 To arrData.GetUpperBound(0)
arrProcent(i) = Math.Round((arrData(i)/total)*100)
Next
Ну и собственно строим диаграмму:
For i = 0 To arrProcent.GetUpperBound(0)
sub_total = sub_total + arrProcent(i)
pie_size = sub_total*360 / 100 - start_angle
g.FillPie(New SolidBrush(arrColor(i)), offset, offset, diameter, diameter, start_angle, pie_size)
start_angle = start_angle + pie_size
rect = New Rectangle(offset + diameter + 10, offset + i*20, 15, 15)
g.FillRectangle(New SolidBrush(arrColor(i)), rect)
g.DrawString(arrTitle(i) & " - [" & arrProcent(i) & "%]", fnt, sb, offset + diameter + 10 + 20, offset + i*20)
Next
bmp.Save(Response.OutputStream, ImageFormat.Jpeg)
Готовый рабочий файл ASP.NET с кодом на VB.NET , который строит диаграмму такую как на рисунке, можно скачать здесь >>>.diagr.aspx (1,99 kb)