Creating a Pie Chart on Fly with VB.NET
Dot net framework provides strong support for creating graphics with GDI+. Developing graphics application was never that much easier in past.
Dot net framework
provides strong support for creating graphics with GDI+. Developing graphics
application was never that much easier in past.
You must have
tried to create bar chart on your web site with dirty html or pie chart with
third party components. In this article I am going to demonstrate GDI+
capabilities by creating component which can create a pie chart on fly for your
web pages or for your windows application.
Pie Chart component
is made up of two classes chartData class which encapsulates and creates
various data for creating pie chart and utChart class which contain method which
returns stream object. Both of these classes are under namespace utCharting.
Data required for creating chart is array of names and Vals which has to be
distributed through pie. In new method of this class we take inputs as array of
names and values , and using those values we have generated properties which
describe percent values for each elements, similarly we determined span of pie
for each elements by multiplying fraction of each element with 360 ( circle has
360 degree) and we obtained start angle for each elements by adding up span in
This class has one method(getpiechart) which returns stream object which
contains pie chart Image in gif formate, this method require inputs as chartdata
object and integer object for diameter of pie chart.
We used fillpie method of graphics object to generate pie for all elements, most
of the code is for determining size of string to be printed on image and
determining size of image, to be created in memory.
utCharting.vb , utCharting.dll.
How to use this component
Sample shows aspx page which utilizes charting component, for that copy
utcharting.dll to your bin directory of web server and copy createPieChar.aspx
to you rootdirectory.
Our aspx page does following things:
- Collects names,
values and pie size data from query string or form.
- Converts names in to
- Converts values into
- Converts piesize
- Creates instance of
chartdata using names and values array.
- Creates instance of
- Gets stream object from
getPiechart method of utChart.
- Sets contenttype of page
- Passes on stream
object to browser
Although this sample is elementary, you can extend functionality by
changing utchart class, one of things I missed is error handling and ways to
make code work faster, you can also add barchart creation to this component. Or
make 3D pie chart or cut out chart which shows chosen pie out of circle.