none
Como traçar um gráfico a partir de quatro colunas? RRS feed

  • 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,...)

    quarta-feira, 5 de setembro de 2012 23:24

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
    segunda-feira, 10 de setembro de 2012 23:28
    Moderador
  • 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     31min

    Bem, 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
    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

    quinta-feira, 6 de setembro de 2012 00:55
    Moderador
  • 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     31min

    Como 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
    quinta-feira, 6 de setembro de 2012 02:37
  • A dificuldade que estou encontrando neste caso é para valores de Xmín e Xmáx repetidos. Pra mim, não ficaria um gráfico bom.

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 6 de setembro de 2012 22:14
    Moderador
  • 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.

    sexta-feira, 7 de setembro de 2012 16:52
  • 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
    segunda-feira, 10 de setembro de 2012 23:28
    Moderador
  • 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     31min

    Bem, 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
    terça-feira, 11 de setembro de 2012 01:49