Como fazer um gráfico de radar de pizza

8

Eu quero criar um gráfico circular no Excel com 8 setores, como neste exemplo:

Em vez de representar a porcentagem como em um gráfico de pizza, quero o valor real, como em um gráfico de radar.

É possível sem usar macros?

    
por KirdApe 11.12.2013 / 19:09

1 resposta

19

Este passo a passo é baseado no tutorial original de Andy Pope aqui. Digamos que esses são os dados com os quais você está começando. Há um pouco de manipulação de dados para fazer antes de criarmos o gráfico.

Noseuexemplo,queremosquetodosossetoressejamdomesmotamanho,masvamostornarascoisasflexíveiseadicionaremumacolunadepesodosetor.Porexemplo,sevocêquiserque"WORK" apareça como uma fatia de tamanho duplo / triplo / quádruplo, basta alterar o peso do setor para 2/3/4, etc.

Agora,precisamoscalcularasproporçõesdefatiaquecadasetorprecisacobrir.Adicioneumacolunachamada"% de 360", dividindo o peso do setor pela soma de todos os pesos do setor.

=C2/SUM($C$2:$C$9)  

Em seguida, precisamos calcular os ângulos inicial e final de cada setor. Adicione uma coluna "Start Angle". Na linha superior, insira 0, depois, para cada linha abaixo, faça referência à célula acima.

Em uma coluna 'Finish Angle', multiplique o número cumulativo de '% de 360' por 360.

Agora,otruqueparafazerumgráficoderadarpensarqueéumgráficodepizzaécriarpontosdedadosparacadaumdos360grausemumcírculo.

Vamosestendernossatabela,comumacolunaparacadaângulo(cinzasombreadonomeuexemplo).Paracadacélula,adicionealgumalógicaqueverifiqueseoângulodessacolunaécobertopelosângulosinicial/final-e,seforocaso,retorneovalorparaessalinha.Certifique-sedecopiarissoparatodasaslinhasecolunasde0a360graus.

=IF(AND(G$1>=$E2,G$1<=$F2),$B2,0)

(Nota - Se você estiver usando o Excel 2003 ou anterior, precisará inverter essa tabela para que a tabela seja vertical (transposição), pois o número de colunas usadas por esse método é maior que o permitido pelas versões antigas Excel.)

Agora podemos pensar no gráfico. Por questões de flexibilidade, vamos adicionar uma coluna "Rótulos de gráfico" entre o ângulo final e os 0 a 360 graus. Vou me referir aos títulos da coluna A, mas você pode querer personalizá-los aqui.

Selecionetodasascélulasnascolunas"Etiquetas de gráfico" e 0-360 (G2: ND9 neste exemplo). Inserir um gráfico - sob as opções de gráfico de radar, escolha a final - "Radar preenchido". Você vai conseguir isso.

Excluaalegendaeosrótulosdedadoscirculares(amarelodestacado).CliquecomobotãodireitodomousenoeixorestanteeescolhaFormatareixo.Definaaunidadeprincipalfixadaem10(seuvalormáximo)eaunidadesecundáriafixadaem1.Fecheacaixadediálogoeexcluaosnúmerosdoseixosnográfico.

Ligueomajor&Linhasdegradehorizontaismenores:

Agora, nosso gráfico é assim.

Definaopesodalinhadegradeprincipalcomo2ptepretoparaabordadocírculoexterno.Sevocêquiserfazercomqueossegmentosmostremaslinhasdegrademenores,vocêprecisaráalteraracordepreenchimentodecadasegmentoedefiniratransparência(cercade20-40%detransparênciadeveserfeita).

Para obter as bordas de segmento radial, precisamos adicionar uma nova série. Defina o título para a célula C1 ("Peso do setor") e os valores para as linhas na coluna C (C2: C9). Defina os rótulos do eixo da categoria horizontal como rótulos do seu gráfico (G2: G9).

Altere o tipo de gráfico dessa nova série para um gráfico de pizza. Remova o preenchimento dos segmentos de pizza e adicione bordas pretas. Adicione rótulos de dados para a série de torta, selecionando o Nome da categoria em vez de Valor e definindo a posição como Externa final.

EDIT(30desetembrode2014):apastadetrabalhoé disponível para faça o download aqui conforme solicitado pelo Firee.

EDIT 2 (25 de março de 2015): Mihajlo apontou que essa técnica pode ser melhorado ligeiramente:

The graph ends up with a slight shift counterclockwise (as seen on the last graph above with red having a gap at the vertical, but covering the boundary at 300 degrees). This is due to spider chart always being one behind (i.e. 1 degree is plotted at 2, 2 at 3 and so on),

A quick fix to this is to change the formula for finish angle (F2) from =360*SUM($D$2:D2) to =360*SUM($D$2:D2)+1 and change the formula for the first point of the last series to be the same as the last point of the last series (in the above example make cell H9 formula to be =ND9.

    
por 11.12.2013 / 19:14