VB .NET - Criando gráficos no VB 2010 Express Edition - II
Esta é a segunda parte do artigo onde mostrei como gerar gráficos usando o controle Chart presente nativamente no Visual Studio 2010 e nas versões Express.
Para seguir os exemplos do artigo basta fazer o download do Visual Basic 2010 Express Edition e após instalar, verificar na aba Data o controle Chart já presente, instalado e pronto para ser usado.
Este artigo vai continuar a mostrar como usar o controle Chart para criar gráficos em aplicações Windows Forms usando o Visual Basic 2010 Express Edition.
Antes de por a mão na massa devemos ter uma visão geral do que vem a ser um objeto chart ou gráfico; Um gráfico é constituído de diversos elementos sendo que todos pode ser acessados através da API do controle Chart que uma API criada sob o paradigma da orientação a objetos, sendo extensível e altamente flexível. Assim um objeto Chart suporta um número ilimitado de elementos como data series, data points em series, chart areas e assim por diante.
A seguir temos uma figura que ilustra os elementos chave que constituem um chart (ou gráfico):
Para detalhes de documentação e exemplo consulte os seguintes links:
Samples Environment for Microsoft Chart Controls (Exemplos para ASP .NET e Windows Forms)
Agora vamos mostrar alguns exemplos básicos usando a API Chart em aplicações Windows Forms.
Abra o seu Visual Basic 2010 Express Edition e no menu File selecione New Project e o template Windows Forms Application e informe o nome : Graficos_Chart e clique em OK;
Será criado o projeto contendo um formulário form1.vb e a pasta My Project;
Vamos começar com algo bem simples como a geração de gráficos com os dados existentes em arrays.
Arrays ???? Rápido um dicionário !!! Uhn... Vejamos : Arrays - Tipo de variável que armazena um conjunto de valores do mesmo tipo ; Um arranjo de elementos em uma ou mais dimensões ; Uma coleção de elementos do mesmo tipo no qual a posição de cada elemento está definida de forma única por um inteiro. Obs: Os arrays são semelhantes aos vetores , se você já ouviu falar em vetores e conhece algo sobre eles verá que os conceitos envolvidos são semelhantes. |
Vamos criar um gráfico que represente os 10 países mais populosos da América do Sul, com base na tabela obtida na Wikipédida exibida abaixo:
Será um gráfico bem simples onde no eixo Y iremos exibir os número de habitantes e no eixo X o nome dos paises.
Uma forma bem simples de fornecer esses dados para o gráfico é criar dois arrays com os dados referente aos habitantes e os nomes dos paises.
No formulário form1.vb do projeto inclua a partir da ToolBoox os seguinte componentes:
No início do formulário vamos definir o namespace:
Imports
System.Windows.Forms.DataVisualization.ChartingA seguir logo após a declaração do formulário vamos declarar os arrays e preenchê-los com os dados conforme a seguir:
'define os valores do eixo y - milhoes de pessoas
'define os valoes do eixo x - nome dos
paises
Dim
xPaises() As
String
= {"Brasil",
"Colombia",
"Argentina","Peru",
"Venezuela",
"Chile","Equador",
"Bolivia",
"Paraguai",
"Uruguai"}
Obs: Observe que na nova versão do VB não precisamos usar mais o sublinhado(_) para indicar outra linha.
A seguir vamos incluir no evento Click do controle Button - btnGraficoTorta o código abaixo:
Private Sub btnGraficoTorta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGraficoTorta.Click With Chart1 'define o tipo de gráfico .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Pie 'define o titulo do gráfico .Titles.Add("Os 10 países mais populosos da América do Sul") 'habilita a visão em 3D .ChartAreas(0).Area3DStyle.Enable3D = True 'define inclinação, rotação e perspectiva .ChartAreas(0).Area3DStyle.Inclination = 20 .ChartAreas(0).Area3DStyle.Rotation = 50 .ChartAreas(0).Area3DStyle.Perspective = 10 'define o estilo da linha .ChartAreas(0).Area3DStyle.LightStyle = LightStyle.Realistic 'define a paleta .Palette = ChartColorPalette.BrightPastel 'vincula os dados ao gráfico .Series(0).Points.DataBindXY(xPaises, yPopulacao) 'exibe os valores no eixo do gráfico .Series(0).IsValueShownAsLabel = True End With End Sub |
Executando o projeto e clicando neste botão iremos obter:
Agora vamos definir o código no evento Click do outro botão para exibir o gráfico de linha:
Private Sub btnGráficoLinha_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGráficoLinha.Click With Chart1 'define o tipo de gráfico .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Line 'define o texto da legenda .Series(0).LegendText = "Países" .ChartAreas(0).Area3DStyle.LightStyle = LightStyle.Simplistic 'define o titulo do eixo y , sua fonte e a cor .ChartAreas(0).AxisY.Title = "População (Milhões)" .ChartAreas(0).AxisY.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold) .ChartAreas(0).AxisY.TitleForeColor = Color.Blue 'define o titulo do eixo x , sua fonte e a cor .ChartAreas(0).AxisX.Title = "Países" .ChartAreas(0).AxisX.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold) .ChartAreas(0).AxisX.TitleForeColor = Color.Blue 'define a paleta de cores usada .Palette = ChartColorPalette.Chocolate 'vincula os dados ao gráfico .Series(0).Points.DataBindXY(xPaises, yPopulacao) 'exibe os valores nos eixos .Series(0).IsValueShownAsLabel = True 'desabilita a exibição 3D .ChartAreas(0).Area3DStyle.Enable3D = False End With End Sub |
A execução desta opção irá gerar o seguinte gráfico:
Para encerrar vamos exibir mais um gráfico do tipo Colunas com exibição em 3D, para isso inclua mais um botão de comando no formulário com Name = btnGraficoColuna e no seu evento Click inclua o seguinte código:
Private Sub btnGraficoColunas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGraficoColunas.Click With Chart1 'define o tipo de gráfico .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Column 'define o texto da legenda .Series(0).LegendText = "Países" 'define o titulo do eixo y , sua fonte e a cor .ChartAreas(0).AxisY.Title = "População (Milhões)" .ChartAreas(0).AxisY.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold) .ChartAreas(0).AxisY.TitleForeColor = Color.Blue 'define o titulo do eixo x , sua fonte e a cor .ChartAreas(0).AxisX.Title = "Países" .ChartAreas(0).AxisX.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold) .ChartAreas(0).AxisX.TitleForeColor = Color.Blue 'define a paleta de cores usada .Palette = ChartColorPalette.Fire 'vincula os dados ao gráfico .Series(0).Points.DataBindXY(xPaises, yPopulacao) 'exibe os valores nos eixos .Series(0).IsValueShownAsLabel = True 'habilta a exibição 3D .ChartAreas(0).Area3DStyle.Enable3D = True End With End Sub |
Executando o projeto e clicando neste botão iremos obter:
É claro que poderíamos gerar outros tipos de gráficos e aplicar outros efeitos afinal a API Chart é muito poderosa mas nosso objetivo foi mostrar como é fácil gerar gráficos usando a API Chart que é nativa no VB 2010 Express Edition, no Visual Studio , no Visual C# e no Visual Web Developer.
Temos assim o acesso a um recurso poderoso e não precisamos pagar nada por isso.
Na continuação deste artigo irei mostrar como usar o databinding a diversas fontes de dados para gerar gráficos com a API Chart.
Pegue o código completo usado no artigo aqui: Graficos_Chart.zip
Eu sei é apenas VB .NET, mas eu gosto...
Referências: