Respostas:
Há um número crescente de soluções comerciais e de código aberto para gráficos JavaScript puros que não exigem Flash. Nesta resposta, apresentarei apenas opções de código aberto.
Existem 2 classes principais de soluções JavaScript para gráficos que não requerem Flash:
Existem prós e contras de ambas as abordagens, mas para uma biblioteca de gráficos eu recomendaria a versão posterior, porque está bem integrada ao DOM, permitindo manipular elementos gráficos com o DOM e, mais importante, configurando eventos DOM. Por outro lado, as bibliotecas de gráficos do Canvas devem reinventar a roda DOM para gerenciar eventos. Portanto, a menos que você pretenda criar gráficos estáticos sem manipulação de eventos, as soluções SVG / VML devem ser melhores.
Para soluções SVG / VML, existem muitas opções, incluindo:
O Raphael é uma biblioteca gráfica de código aberto muito ativa, bem mantida e madura, com muito bom suporte a vários navegadores, incluindo IE 6 a 8, Firefox, Opera, Safari, Chrome e Konqueror. O Raphael não depende de nenhuma estrutura JavaScript e, portanto, pode ser usado com Prototype, jQuery, Dojo, Mootools, etc ...
Há várias bibliotecas de gráficos baseadas no Raphael, incluindo (mas não se limitando a):
Divulgação: Sou desenvolvedor de um dos garfos da Ico no github .
Se você estiver usando o jQuery, achei o flot muito bom - experimente os exemplos para ver se eles atendem às suas necessidades, mas achei que eles fazem a maior parte do necessário para o meu projeto atual.
Além disso, o ExtJS 4.0 introduziu um ótimo conjunto de gráficos - muito poderoso e foi projetado para trabalhar com dados ao vivo.
Confira http://www.highcharts.com !
O Highcharts é uma biblioteca de gráficos escrita em JavaScript puro, oferecendo uma maneira fácil de adicionar gráficos interativos ao seu site ou aplicativo. Atualmente, o Highcharts suporta os tipos de gráfico de linhas, splines, áreas, áreas, colunas, barras, torta e gráficos de dispersão.
Talvez não seja exatamente o que você está procurando, mas
a API de gráficos do Google é muito legal e fácil de usar.
Existe outra biblioteca javascript baseada em SVG. É chamado Protovis e vem do Stanford Visualization Group
Também permite fazer ótimos gráficos e visualizações interativos.
http://vis.stanford.edu/protovis/ex/
Embora seja apenas para navegadores modernos
ATUALIZAÇÃO: A equipe do protovis mudou-se para outra biblioteca chamada d3.js. (Data Driven Documents) como eles disseram:
"A equipe do Protovis agora está desenvolvendo uma nova biblioteca de visualização, o D3.js., com suporte aprimorado para animação e interação. O D3 se baseia em muitos dos conceitos do Protovis"
A nova biblioteca agora pode ser encontrada em:
http://mbostock.github.com/d3/
ATUALIZAÇÃO 2:
"Rickshaw" é um kit de ferramentas JavaScript para criar gráficos interativos de séries temporais. Baseado no d3.js, que simplifica bastante o trabalho com o d3.js, embora seja um pouco menos poderoso.
Recentemente, eu estava procurando por uma biblioteca de gráficos javascript e avaliei um monte antes de finalmente optar pelo jqplot que se encaixava muito bem nos meus requisitos. Como a resposta de Jean Vincent mencionou, você está realmente escolhendo entre soluções baseadas em tela e svg.
A meu ver, os principais prós e contras eram os seguintes. As soluções baseadas em SVG, como Raphael (e ramificações), são ótimas se você deseja criar gráficos altamente dinâmicos / interativos. Ou se os requisitos de gráficos estão muito fora da norma (por exemplo, você deseja criar algum tipo de gráfico híbrido ou criou uma nova visualização que ninguém mais pensou ainda). A desvantagem é a curva de aprendizado e a quantidade de código que você precisará escrever. Você não estará distribuindo gráficos em alguns minutos, esteja preparado para investir algum tempo real de aprendizado e depois escrever uma boa quantidade de código para produzir um gráfico relativamente simples.
Se seus requisitos de criação de gráficos são razoavelmente padrão, por exemplo, você deseja alguns gráficos de linhas ou barras ou talvez um gráfico de pizza ou dois, com interatividade limitada, vale a pena procurar soluções baseadas em tela. Não haverá praticamente nenhuma curva de aprendizado; você poderá obter gráficos básicos em alguns minutos, não precisará escrever muito código, serão necessárias apenas algumas linhas de javascript / jquery básico. Obviamente, você só poderá produzir os tipos específicos de gráficos que a biblioteca suporta, geralmente limitados a vários tipos de linha, barra, torta. As opções de interatividade serão extremamente limitadas, ou seja, inexistentes para muitas das bibliotecas existentes, embora alguns efeitos de foco limitados sejam possíveis com os melhores.
Eu fui com o JQplot, que é uma solução baseada em tela, pois eu realmente só precisava de alguns tipos padrão de gráficos. Nas minhas pesquisas e nas várias opções, achei que ele era razoavelmente completo (se você está apenas atrás dos gráficos padrão) e extremamente fácil de usar, então eu o recomendaria se seus requisitos fossem semelhantes.
Para resumir, simples e deseja gráficos agora, vá com o JQplot. Complexo / diferente e não pressionado pelo tempo, vá com Raphael e amigos.
O jqPlot é ótimo. Se seus requisitos são razoavelmente "normais" e você apenas deseja desenhar alguns gráficos, provavelmente ficará impressionado com a quantidade de opções de gráficos js. Supondo que você não queira fazer horas de pesquisa, basta ir com o jqPlot, pois provavelmente é sua melhor aposta. Abrange a maioria dos casos de uso para a maioria das pessoas. Algumas das alternativas são especializadas em um determinado tipo de gráfico ou construídas com um certo caso de uso em mente.
Como algum tipo de resposta tardia, tente d3.js
http://mbostock.github.com/d3/
É a continuação do protovis.
A grande diferença é o número de recursos suportados.
Embora o flot possa ser mais simples, o d3.js é definitivamente mais poderoso.
Experimente o PlotKit
Eu recomendaria o gRaphaël para gráficos JavaScript puros, juntamente com a biblioteca de gráficos vetoriais JavaScript puros em que foi construída ( Raphaël ).
O gRaphaël atualmente suporta Firefox 3.0+, Safari 3.0+, Opera 9.5+ e Internet Explorer 6.0+.
básico: http://www.filamentgroup.com/examples/charting_v2/index_2.php
bonito: http://www.highcharts.com/
Outra é RGraph: gráficos Javascript e biblioteca de gráficos:
Com base em tela, é rápido e existem aproximadamente 20 tipos diferentes de gráficos. Também é gratuito para uso não comercial!
Meu favorito (flot) já foi mencionado.
Mas não deixe de investigar o Ortho . É excelente para gráficos e cronogramas de árvores.
Há muita atividade na biblioteca de gráficos do dojo, e o que é ótimo eu estou usando em um aplicativo AIR sem problemas também, muito legal! Veja, por exemplo, http://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/
Confira a API de visualização do Google , que é uma generalização da API de gráficos mais simples
http://code.google.com/apis/visualization/documentation/gallery.html
Tem opções interativas muito legais, incluindo mapas, medidores e gráficos.
Acabamos de comprar uma licença do TechOctave Charts Suite para nossa nova inicialização. Eu recomendo eles. Licenciar é simples. Os gráficos estão ótimos! Foi fácil começar e tem uma API poderosa para quando precisamos dela. Fiquei chocado com o quão limpo e extensível o código é. Muito feliz com a nossa escolha.
Experimente a linha do tempo do MIT, que pode ser transformada em gráfico - http://simile.mit.edu/timeline/
ou o final, http://code.google.com/p/gchart/
Não é uma biblioteca Javascript, mas pode ser uma alternativa adequada. Confira o Google Charts, onde você pode gerar gráficos passando dados da string de consulta para o serviço da Web.
Dê uma olhada no Bluff . É uma porta JavaScript da biblioteca de gráficos Gruff para Ruby.
Protochart é tudo que você precisa
A Sencha adquiriu o Raphael e agora seus gráficos são javascript puro a partir da versão 4. Emprise e HighCharts mencionados acima são meus dois favoritos.
Para os gráficos mais incomuns: http://thejit.org/
Eu posso recomendar ArcadiaCharts . Uma nova biblioteca profissional de gráficos para JavaScript e GWT. É executado em todos os navegadores sem plugins. Fácil e rápido de usar: cria excelentes gráficos com apenas algumas linhas de código. Grátis para uso não comercial.
O Fusion charts possui uma nova biblioteca javascript / jquery que parece promissora.
Caso você precise apenas de gráfico de barras. Publiquei algum código que venho usando em um projeto antigo. Alguém me disse que a implementação do VML está quebrada nas versões recentes do IE, mas o SVG deve funcionar bem. Pode estar voltando ao projeto e liberar alguns renderizadores do servidor que eu já tenho e talvez a camada de renderização WebGL. Há um link: http://blog.conquex.com/?p=64
Provavelmente não é o que o OP está procurando, mas desde que essa pergunta se tornou uma lista de opções da biblioteca de gráficos JS: o jQuery Sparklines é muito legal.
Confira os gráficos ZingChart HTML5 Canvas, SVG, VML e Flash . Biblioteca muito poderosa e compatível. Estou na equipe Zing - mencione-nos no twitter @zingchart ou tire qualquer dúvida para support@zingchart.com.