Skip to content

chart ChartPie

Saulo Martins edited this page Jul 4, 2026 · 1 revision

ChartPie — Pizza

Gráfico de pizza com suporte a rótulos de dados (valor, percentual e categoria) e explosão de fatias.
Elemento ECMA-376: c:pieChart (2D) / c:pie3DChart (3D) — §21.2.2.141.

Criado via oExcel:NewChart("pie") ou instância direta:

Local oGraf := custom.excel.chart.ChartPie():New(oExcel)

Herda todos os métodos da classe base Chart.

Obs: Pizza normalmente usa apenas uma série de dados. Cada valor da série vira uma fatia com cor automática.


Métodos específicos


SetRotulos

:SetRotulos(lExibir, lValor, lPercentual, lCategoria)
Define a exibição dos rótulos de dados nas fatias da pizza.

Parâmetro Tipo Descrição Obrigatório Obs
lExibir lógico .T. exibe rótulos Default .F.
lValor lógico Exibe o valor absoluto Default .F.
lPercentual lógico Exibe o percentual Default .T.
lCategoria lógico Exibe o nome da categoria Default .F.

Retorno: objeto self


SetAnguloIni

:SetAnguloIni(nAngulo)
Define o ângulo de início da primeira fatia (em graus, 0 = topo, sentido horário).

Parâmetro Tipo Descrição Obrigatório Obs
nAngulo numérico Ângulo em graus (0 a 360) X Default 0

Retorno: objeto self


Explosão de fatias (método da Serie)

Para afastar uma fatia individual, use :SetExplosao(nExplosao) no objeto Serie retornado por :AddSerie():

Local oSerie := oGraf:AddSerie("Total", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oSerie:SetExplosao(20) // Fatia afastada 20% do centro

Exemplos

Pizza com percentuais:

Local oGraf := oExcel:NewChart("pie")
oGraf:SetTitulo("Participação por Região")
oGraf:SetRotulos(lExibir = .T., lPercentual = .T.)
oGraf:AddSerie("Sudeste", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7", aSudeste, aMeses)
oGraf:Insert(18, 19, 33, 27)

Pizza com valor e categoria:

Local oGraf := oExcel:NewChart("pie")
oGraf:SetRotulos(.T., lValor = .T., lPercentual = .F., lCategoria = .T.)
oGraf:AddSerie("Vendas", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oGraf:Insert(1, 9, 16, 17)

Pizza 3D com ângulo inicial personalizado:

Local oGraf := oExcel:NewChart("pie")
oGraf:Set3D()
oGraf:SetAnguloIni(45)   // Primeira fatia começa a 45 graus
oGraf:SetRotulos(.T.)
oGraf:AddSerie("Vendas", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oGraf:Insert(1, 9, 16, 17)

Pizza com fatia explodida:

Local oGraf := oExcel:NewChart("pie")
oGraf:SetRotulos(.T., lPercentual = .T., lCategoria = .T.)
Local oSerie := oGraf:AddSerie("Vendas", "Dados!$B$2:$B$7", "Dados!$A$2:$A$7")
oSerie:SetExplosao(25)   // Primeira fatia "saltando" 25% para fora
oGraf:Insert(1, 9, 16, 17)

Clone this wiki locally