Usuário com melhor resposta
Como traçar um gráfico a partir de quatro colunas?

Pergunta
-
Olá, gostaria de traçar um gráfico, no entanto parto de uma tabela que não é a comum. Explico:
1. Possuo os nomes das séries (Nome1, Nome2, etc)
2. Para cada série, possuo um conjunto de valores X,Y.
3. No entanto, X não é um valor único, na verdade um par: Xmáx e Xmin. Daí, para cada par (Xmáx, Xmín) tenho um valor de Y e, para complicar, os Xmáx e Xmín não se repetem conforme mudo a série.
Exemplo:
Nome | Xmáx | Xmín | Y
Nome1 2,0 1,0 45
Nome1 2,1 1,4 23
Nome1 2,0 1,5 20
Nome2 2,8 1,1 33
Nome2 2,0 1,0 20
Nome2 2,0 1,7 31(...)
Caso não seja possível, terei de traçar Xméd x Y.
Utilizei Xmáx, Xmín e Y para exemplificar; poderia ser Ymáx, Ymín e X. Daí, a partir disso, traçar um gráfico com várias linhas (Nome1, Nome2,...)
Respostas
-
Após pensar um pouco neste problema, cheguei à conclusão que não é possível representar todos os nomes, de uma forma razoável, num só gráfico. Você tem que criar um gráfico único cuja série Nome seja dinâmica.
Além disso, o gráfico seria 3D, com os eixos da base sendo XMín e XMáx e Y sendo a altura das barras.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta marlon2s terça-feira, 11 de setembro de 2012 01:49
-
Bem, muito obrigado de qualquer maneira (não só por esta, mas pelas tantas outras dúvidas).
Bolei aqui um jeito complexo, porém acoxambrado, que resulta quase na mesma coisa. Agora falta descobrir como fazer essas etapas em VBA, mas vou gravando as macros e vou descobrindo. É mais ou menos assim:
Suponhamos novamente esta tabela:
Alumínio 20°C 10°C 45min
Alumínio 21°C 14°C 23min
Aço 20°C 15°C 20min
Alumínio 28°C 11°C 33min
Aço 20°C 10°C 20min
Cobre 20°C 17°C 31minBem, resolvi ignorar essa questão de juntar Alumínio com Alumínio (aço com aço, etc) em mesmas séries, mas apenas tentar pintar da mesma cor depois.
Daí, funciona assim. Fazemos um gráfico de dispersão com Temperatura Média em X e Tempo em Y. Bem, em seguida adiciono uma barra de erro horizontal com amplitude igual a (Tmáx-Tméd)/2 Daí teremos várias barrinhas - e uma legenda bem grande, mas, fazer o que.
Novamente, obrigado; vou lá ver como fazer esse esquema em VBA.
- Marcado como Resposta marlon2s terça-feira, 11 de setembro de 2012 01:49
Todas as Respostas
-
Duas dúvidas:
Você repetiu o Nome1 três vezes, e Nome2 três vezes. Na verdade, seu exemplo deveria ir de Nome1 a Nome6, certo?
O Xmáx e Xmín da primeira linha é igual ao Xmáx e Xmín da quinta linha, mas os valores são diferentes. Como esse caso deve ser representado no gráfico?
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Na verdade, cada nome pode aparecer várias vezes; pois, para um mesmo nome, os dados que aparecem depois referem-se a uma outra condição experimental. Explico:
Considere um ensaio mecânico, no qual "nome" é o nome do material que foi ensaiado; Xmáx e Xmín são as temperaturas máx. e mínima alcançadas durante o ensaio e Y o tempo que levou par ao material quebrar.
Assim, podemos ter uma tabela com os seguintes dados (valores apenas como exemplos, ainda não tenho os reais):
Alumínio 20°C 10°C 45min
Alumínio 21°C 14°C 23min
Aço 20°C 15°C 20min
Alumínio 28°C 11°C 33min
Aço 20°C 10°C 20min
Cobre 20°C 17°C 31minComo são resultados de ensaios, não há problema se duas colunas apresentem mesmos Xmáx e Xmín, porém com valores Y diferentes.
A partir dessa tabela, gostaria de traçar 3 curvas: uma para cada material; no eixo X, por exemplo, estariam os tempos e, no eixo Y, as temperaturas.
Consideremos, a princípio, não existir essa questão de máx e mín. Não consegui fazer com que esses nomes repetidos fossem interpretados como pertencentes à mesma série.
Jà, considerando os máx e mín, seria algo de aparência semelhante àquelas barras de erro, em que o centro poderia ser a temperatura média.
- Editado marlon2s quinta-feira, 6 de setembro de 2012 02:38 retirar ambiguidade do texto
-
-
E se invertêssemos X com Y, a dificuldade persiste?
Há outra forma de representar os dados, também não sei como fazer. Por exemplo:
Na figura, a linha rosa poderia se referir a Nome1; com os pontos:
Xmín = 4 ;Xmáx = 6; Y = 71
Xmín = 6 ;Xmáx = 7; Y = 70
Xmín = 7 ;Xmáx = 9; Y = 60
etc. Não necessariamente X consecutivos.
-
Após pensar um pouco neste problema, cheguei à conclusão que não é possível representar todos os nomes, de uma forma razoável, num só gráfico. Você tem que criar um gráfico único cuja série Nome seja dinâmica.
Além disso, o gráfico seria 3D, com os eixos da base sendo XMín e XMáx e Y sendo a altura das barras.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Marcado como Resposta marlon2s terça-feira, 11 de setembro de 2012 01:49
-
Bem, muito obrigado de qualquer maneira (não só por esta, mas pelas tantas outras dúvidas).
Bolei aqui um jeito complexo, porém acoxambrado, que resulta quase na mesma coisa. Agora falta descobrir como fazer essas etapas em VBA, mas vou gravando as macros e vou descobrindo. É mais ou menos assim:
Suponhamos novamente esta tabela:
Alumínio 20°C 10°C 45min
Alumínio 21°C 14°C 23min
Aço 20°C 15°C 20min
Alumínio 28°C 11°C 33min
Aço 20°C 10°C 20min
Cobre 20°C 17°C 31minBem, resolvi ignorar essa questão de juntar Alumínio com Alumínio (aço com aço, etc) em mesmas séries, mas apenas tentar pintar da mesma cor depois.
Daí, funciona assim. Fazemos um gráfico de dispersão com Temperatura Média em X e Tempo em Y. Bem, em seguida adiciono uma barra de erro horizontal com amplitude igual a (Tmáx-Tméd)/2 Daí teremos várias barrinhas - e uma legenda bem grande, mas, fazer o que.
Novamente, obrigado; vou lá ver como fazer esse esquema em VBA.
- Marcado como Resposta marlon2s terça-feira, 11 de setembro de 2012 01:49