Рисуем динамические диаграммы на ASP.NET

 

Существует прекрасная возможность формировать динамические графики на сайтах 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)

Комментарии закрыты