Blog Zero em Gráficos Coloridos
Marcos me convidou para escrever o duocentésimo post do Blog Zero; é claro que aceitei, embora demorei infinitamente para fazer o texto e precisei de prorrogação de prazo 🙂 E devo dizer que é uma honra escrever para este blog que vi nascer e que se tornou algo grande e lindo e maior do que eu imaginava na época. Ao explorar o blog em detalhes, vi que ele é ainda maior e mais lindo do que eu já sabia!
O título deste post é uma homenagem e uma memória do primeiro post que Marcos e eu escrevemos juntos, publicado no anotherecoblog sob o título “Dragonball em gráficos coloridos” https://anotherecoblog.wordpress.com/2019/01/04/dragonball-em-graficos-coloridos/ e aqui no Zero como “Dragon bubble” https://www.blogs.unicamp.br/zero/5565/; tendo sido antes publicado também no blog xoxelho, antigo blog do Marcos. Assim como lá usamos Dragonball para mostrar gráficos legais, aqui eu decidi mostrar alguns tipos de gráficos, para o que servem e como podemos criar eles, usando o próprio Blog Zero como exemplo.
Inclusive, falando em blogs (até porque seria muito estranho não falar em blogs ao escrever em um blog sobre um blog!), o Zero nos ensina duas coisas importantes sobre como blogar: tenha coesão e regularidade; e não desista se sua primeira tentativa de blog não levantar voo como esperado! Eu, Marcos e uma outra amiga minha uma vez tentamos fazer um novo blog de divulgação científica, que não teve muito futuro; e Marcos já teve outras tentativas antes desse. E depois de criar o Zero, ele manteve uma consistência de publicações – o que não é fácil! Eu mesmo não consigo – e manteve seu estilo de escrita, aparentemente passando até mesmo a receber livros para revisar. Admirável, de verdade!
Mas vocês vieram aqui para ver gráficos coloridos, né? Bom, de qualquer modo eu quero fazer gráficos coloridos 🙂 Mas algo importante em gráficos é que eles sejam informativos, que respondam a perguntas. Além disso, os elementos decorativos dos gráficos não devem atrapalhar o entendimento. Mas o mais importante é que eles respondam a perguntas.
Então, vamos tentar responder a algumas perguntas! E a primeira pergunta pode ser: Sobre o que se escreve no Blog Zero?
Poderíamos perguntar isso diretamente a quem escreve, ou dar uma explorada geral no blog para entender – e com isso veríamos que é um blog de divulgação científica em matemática, mas que também discute questões de gênero e questões educacionais, e com muitas referências a animes, xadrez e eventualmente Doctor Who. Mas, se quisermos um gráfico colorido, uma possibilidade é fazer uma nuvem de palavras!
Como funciona uma nuvem de palavras? Bom, basicamente, pegamos palavras que tem em um texto, vemos com que frequência elas ocorrem, e fazemos um desenho, em que o tamanho de cada palavra vai ser correspondente à sua frequência de ocorrência. Existem sites e softwares que fazem isso diretamente a partir de um texto, mas eu fui fazendo de um jeito raiz mesmo:
Primeiro, eu criei um arquivo de texto no qual eu colei o texto de todos os 199 posts no Zero (apenas os em português); mantive todo o texto, mas não mantive o título e não mantive informações sobre como referenciar cada post. Demorou, quase me arrependi no meio do caminho mas acho que valeu a pena 🙂 No final o meu arquivo de texto chegou a 11738 linhas 🙂
Depois, usando ferramentas que tem no IDE (integrated development environment – basicamente um editor de texto chique pra quem programa) que uso – o Sublime Text – transformei tabulações em espaços; então importei os dados para o R (um ambiente de programação focado em estatística); transformei o texto em palavras separadas; substituí maiúsculas por minúsculas; excluí coisas como pontos, vírgulas, e outras pontuações; e contei quantas vezes cada palavra aparece.
(A parte mais demorada nesse tratamento de dados foi padronizar a escrita e excluir pontuações, que acabaram ficando junto com as palavras; isso é algo comum quando tentamos trabalhar com textos em um ambiente de programação sem saber direito o que estamos fazendo – uma pessoa vai entender que as palavras “ela”, “ela!” e “Ela” têm o mesmo significado, mas o computador vai provavelmente entender como palavras diferentes se não deixarmos bem claro que não são.)
Então, as 20 palavras que mais aparecem no texto são:
Palavra | Frequência |
de | 7818 |
que | 5981 |
a | 5949 |
[espaço] | 4868 |
o | 4760 |
e | 4144 |
um | 2782 |
para | 2559 |
uma | 2279 |
do | 2211 |
com | 2156 |
em | 1963 |
é | 1886 |
se | 1853 |
não | 1802 |
Não é muito informativo né 🙂 Mostra apenas que o Blog Zero é em português (e bom, eu só considerei as postagens em portugês) e quem escreve nele usa preposições. Então, precisamos fazer uma limpeza e ver quais palavras realmente queremos usar na nossa nuvem de palavras. Para isso, exportei os dados para um arquivo .xlsx (usando o pacote ‘xlsx’ em R) e fiz a limpeza lá, manualmente, excluindo preposições, artigos etc. Mantive números escritos por extenso mas excluí os escritos em forma de número, até porque, sendo um blog de matemática, é esperando que haja muitos números, mas fora do contexto eles não seriam informativos. Deu um trabalho – tipo, 17710 palavras diferentes usadas – mas a vida é assim 🙂
Assim, além dos números, foram principalmente essas as palavras muito comuns que removi: “de”, “que”, “o”, “e”, “um”, “para”, “uma”, “do”, “com”, “em”, “é”, “se”, “não”, “da”, “no”, “por”, “os”, “como”, “na”, “mas”, “as”, “ou”, “mais”, “ser”, “sua”, “dos”, “seu”, “assim”, “então”, “isso”, “ela”, “pois”, “seja”, “cada”, “mesmo”, “das”, “até”, “sobre”, “ele”, e algumas outras. Também removi as palavras que apareceram uma única vez. Alguns problemas ainda ficaram, mas eu já estava cansado e decidi ir logo e fazer a nuvem de palavras, usando o pacote ‘wordcloud’, novamente em R:
E aí, olhando pra essa imagem, o que você infere sobre este blog?
Eu gosto de como a palavra “podemos” aparece em destaque – é uma palavra muito usada ao demonstrar algo ou explicar algum procedimento – assim como a palavra “temos”. A palavra “você” também aparece bastante, condizente com textos que possam ser vistos como uma conversa. A palavra “matemática” está em destaque, assim como “exemplo”. E repararam em “atalia”? É a Atalia, da série “A aventura de Atalia – uma narrativa de RPG sincera” https://www.blogs.unicamp.br/zero/3826/.
E também tem muitas palavras que aparecem tão pequenas que não dá nem pra ler – a nuvem de palavras é uma ferramenta visual, boa para fazer figuras bonitas e comunicar a ideia geral de algo mas não é tão útil para análises mais formais.
Podemos também fazer uma nuvem de palavras usando apenas os títulos das postagens. Repeti basicamente o mesmo procedimento acima, mas foi muito mais fácil porque Marcos já tinha me enviado uma planilha com informações sobre as postagens. Ao tratar os dados, eu excluí apenas números e pontuações, e na figura mantive todas as palavras; na anterior eu mantive apenas as que aparecem duas vezes ou mais.
Interessante como olhando para essa nuvem de palavras, parece difícil ver sobre o que é o blog! Os títulos aqui no Zero são bem criativos e chamam a atenção, o que a meu ver é algo bem legal para divulgação científica. Mas confesso que eu fiquei surpreso – eu imaginei que inferir sobre a temática do blog seria mais fácil a partir dos títulos do que dos textos, só que parece que foi o contrário.
Se quiséssemos uma análise mais formal, entraríamos no mundo da pesquisa qualitativa e poderíamos, por exemplo, fazer uma análise de conteúdo, dividindo os textos em trechos (e classificando esses trechos em categorias, que poderiam ser definidas previamente ou surgirem à medida que os textos vão sendo analisados. Assim, o conjunto de textos formaria o chamado “corpus” para as análises; mas não vamos entrar nestes detalhes aqui; só vou falar que, feita essa classificação, poderíamos quantificar a frequência das diferentes categorias, possivelmente ver relações entre elas etc.
Bom, então até aqui fizemos gráficos coloridos para tentar responder a pergunta “Sobre o que se escreve no Blog Zero?” Agora, quero fazer mais dois tipos gráficos coloridos, para responder a pergunta “Quando há postagens no Blog Zero?”
Para isso, peguei os dados que Marcos me enviou, contendo entre outras informações as datas das postagens, e usei o pacote ‘lubridate’ no R para trabalhar com eles. O primeiro passo foi indicar para o R como entender as datas; feito isso, eu pude, por exemplo, quantificar o número de postagens por ano:
Acreditem, ter mais de vinte postagens por ano não é nada fácil! Falando como alguém que tenta manter uma regularidade nas minhas postagens e não consegue – realmente, é complicado, especialmente quando se precisa conciliar isso com as outras atividades tipo defender uma tese e ser docente em instituição federal. Também vemos um pico em 2020 e 2021 – tempos de isolamento social, trabalho remoto e estímulos à produção de materiais online.
E tem um último gráfico que gostaria de mostrar; algo que também faz sentido para este blog por tratar de uma aplicação da trigonometria – uma aplicação que inclusive teria me deixado muito mais feliz quando eu estudava trigonometria no ensino médio! – embora eu não vá entrar em detalhes trigonométricos aqui. Estou falando de análise de dados temporais, usando estatística circular.
Uma pergunta que podemos fazer é se as postagens se concentram em algum momento do ano ou se são distribuídas de forma mais homogênea. O problema é que representar dados assim de forma linear é que, se for um fenômeno cíclico (como a floração de uma planta ou a migração de um ave), datas que deveriam ficar perto – 31 de dezembro e 1 de janeiro – ficarão em lados opostos do gráfico. A solução, então, é dispor os dados ao longo de uma circunferência! Mas como fazer isso com dados que são temporais?
Bom, o primeiro passo seria transformar a data (mês e dia – vamos desconsiderar os anos) em dias desde o começo do ano. Assim, por exemplo, 1 de fevereiro vai ser o dia 32.
O segundo passo é transformar dias em ângulos. Um ano tem 365 dias, exceto os anos bissextos, que têm 366 dias. Um círculo tem 360 graus. Então, para transformar o dia em ângulo, dividimos o dia por 365 ou 366, e multiplicamos o resultado por 360. Assim, por exemplo, o dia 31 de janeiro vai corresponder a aproximadamente 30,5 graus.
Feito isso, em alguns softwares podemos ter que transformar o ângulo de graus para radianos (basicamente, multiplicando por pi e dividindo por 180), e então podemos fazer um gráfico colorido como a seguir:
Neste gráfico, usei diferentes cores para mostrar os anos; usei uma escala de cores qualitativa, em que as cores são o mais diferentes possível umas das outras, porque o uso de outras escalas não gerou uma diferenciação clara. As bolinhas são semi-transparentes porque há muita sobreposição entre elas.
Bom, parece que as postagens não são concentradas em nenhuma época do ano – meus parabéns pela consistência! 🙂 E podemos também quantificar isso, calculando um ângulo médio. O ângulo médio é basicamente a média entre os ângulos. Mas não podemos fazer este cálculo diretamente, porque os ângulos se comportam de forma circular, e 359 graus está mais perto de 2 graus do que de 350 graus. Assim, se fizéssemos uma média aritmética entre 359 graus e 1 grau, o resultado seria 180 graus – sendo que na verdade o ângulo que está entre 359 graus e 1 grau é o de 360 graus.
A forma de fazer isso, então, é trabalhar com seno e cosseno; mas esse texto já está ficando grande, então acredito que uma exploração detalhada de estatística circular pode ficar para uma postagem futura! O que interessa agora é que usando trigonometria, conseguimos medir o ângulo médio, que corresponde neste caso à época do ano em que postagens estariam mais concentradas; e também podemos obter uma medida da concentração destas postagens, representada pelo comprimento do vetor que aponta do centro do círculo para a sua borda. Vejam como fica isso na figura:
Então, parece haver uma pequena concentração de postagens lá pra maio; mas é uma concentração bem pequena – tanto que o teste de Rayleigh, que é um teste estatístico que podemos usar para ver se os ângulos se distribuem de forma aleatoriamente ou não, não detectou diferenças estatisticamente significativas entre a distribuição das postagens e o que seria esperado de uma distribuição aleatória.
Acho que já escrevi muito então vou ficar por aqui, com estes cinco gráficos coloridos! Duas nuvens de palavras, um gráfico de barras, e dois gráficos circulares. Espero que tenham gostado 🙂 Marcos, muito obrigado pelo convite, foi uma honra!
Ah, os códigos que usei estarão disponíveis no meu github, em https://github.com/pdodonov/AnotherEcoBlog.
Como referenciar este conteúdo em formato ABNT (baseado na norma NBR 6023/2018):
DODONOV, Pavel. Blog Zero em Gráficos Coloridos. In: UNIVERSIDADE ESTADUAL DE CAMPINAS. Zero – Blog de Ciência da Unicamp. Volume 12. Ed. 1. 2º semestre de 2024. Campinas, 21 de setembro 2024. Disponível em: https://www.blogs.unicamp.br/zero/5811/. Acesso em: <data-de-hoje>.
Que post incrível! 👏 Fiquei muito feliz em ver todo o trabalho que você dedicou, e confesso que a forma como você analisa os gráficos e a estrutura do blog me inspirou bastante. É uma verdadeira aula sobre dados e estatísticas aplicada de uma maneira que fica fácil de entender. Fico honrado de poder participar e acompanhar a evolução do Blog Zero desde o início. Parabéns por esse marco!
Obrigada, Animace. Já encaminhei a mensagem para o autor do post (Pavel). Ele ficou bastante feliz com a mensagem :3
E sim, toda vez que pergunto algo de estatística pra ele, recebo uma aula rsrsrsrs