<jupyter_start><jupyter_text>Data Science: Visualização de Dados com PythonAprenda a construir visualizações de dados usando a linguagem de programação Python e a biblioteca Pyplot.<jupyter_code>"Hello World MatPlotLib!"
import matplotlib.pyplot as plt<jupyter_output><empty_output><jupyter_text>Gráficos de linhas<jupyter_code>x = [1,2]
y = [2,3]
plt.plot(x,y)
plt.show()<jupyter_output><empty_output><jupyter_text>Legendas para gráficos<jupyter_code>x = [1,2,5]
y = [2,3,7]
plt.title("Gráfico de linhas PyPlot")
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")

plt.plot(x, y)
plt.show()<jupyter_output><empty_output><jupyter_text>Gráficos de Barras<jupyter_code>x = [1,2,3,4,5,6]
y = [2,3,7,6,2,10]
plt.title("Gráfico de Barras PyPlot")
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")

plt.bar(x, y)
plt.show()<jupyter_output><empty_output><jupyter_text>Comparação em gráfico de barras<jupyter_code>x1 = [1,3,5,7,9,11]
y1 = [2,3,7,6,2,10]

x2 = [2,4,6,8,10,12]
y2 = [4,4,8,6,1,12]
plt.title("Gráfico de Barras PyPlot")
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")

plt.bar(x1, y1, label = "Grupo 1")
plt.bar(x2, y2, label = "Grupo 2")

plt.legend()
plt.show()<jupyter_output><empty_output><jupyter_text>Gráficos de Dispersão<jupyter_code>x = [1,3,5,7,9]
y = [2,3,7,1,0]
plt.title("Gráfico de dispersão - Scatterplot")
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")

plt.scatter(x, y)

plt.show()<jupyter_output><empty_output><jupyter_text>Estilização de gráficos<jupyter_code>z = [200,350,490,100,3000]
plt.title("Gráfico de dispersão - Scatterplot")
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")

plt.scatter(
    x, y,
    label = "pontos",
    color = "red", # "#FFFFFF"
    marker = ".", # ["*", "h", "x"]
    s = z # 100
)

plt.plot(
    x, y,
    label = "linhas",
    color = "blue", # "#FFFFFF"
    linestyle = ":" # "-"
)

plt.legend()
plt.show()
plt.title("Gráfico de dispersão - Scatterplot")
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")

plt.scatter(
    x, y,
    label = "pontos",
    color = "red", # "#FFFFFF"
    marker = ".", # ["*", "h", "x"]
    s = 100
)

plt.plot(
    x, y,
    label = "linhas",
    color = "blue", # "#FFFFFF"
    linestyle = "--" # "-"
)

plt.legend()
plt.show()
plt.title("Gráfico de dispersão - Scatterplot")
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")

plt.scatter(
    x, y,
    label = "pontos",
    color = "red", # "#FFFFFF"
    marker = ".", # ["*", "h", "x"]
    s = 100
)

plt.plot(
    x, y,
    label = "linhas",
    color = "blue", # "#FFFFFF"
    linestyle = "--" # "-"
)

plt.legend()

plt.savefig("data/output/figura-salva.png", dpi = 72) # ".pdf"<jupyter_output><empty_output><jupyter_text>Estudo de caso Crescimento da população brasileira 1980-2016Neste estudo de caso, criaremos um gráfico do crescimento da população brasileira.**Fonte:** [DataSUS](https://datasus.saude.gov.br/)**Atenção:** os dados brutos (populacao_brasileira.csv) foram submetidos como material suplementar desta aula.<jupyter_code>import pandas as pd
dados = pd.read_csv('data/input/populacao.csv', delimiter = ';')
dados.head()
x = dados['ano']
y = dados['population']
plt.title("Crescimento da população brasileira 1980-2016")
plt.xlabel("Ano")
plt.ylabel("População x100.000.000")

plt.plot(
    x, y,
    label = "Crescimento da população",
    color = "k",
    linestyle = ":"
)

plt.legend()

plt.savefig("data/output/crescimento_populacao_brasileira_line.png", dpi = 72)
plt.title("Crescimento da população brasileira 1980-2016")
plt.xlabel("Ano")
plt.ylabel("População x100.000.000")

plt.bar(
    x, y,
    label = "Crescimento da população",
    color = "#e4e4e4",
    linestyle = ":"
)

plt.legend()

plt.savefig("data/output/crescimento_populacao_brasileira_bar.png", dpi = 72)
plt.title("Crescimento da população brasileira 1980-2016")
plt.xlabel("Ano")
plt.ylabel("População x100.000.000")

plt.scatter(
    x, y,
    label = "Crescimento da população",
    color = "k",
    marker = "."
)

plt.legend()

plt.savefig("data/output/crescimento_populacao_brasileira_scatter.png", dpi = 72)
plt.title("Crescimento da população brasileira 1980-2016")
plt.xlabel("Ano")
plt.ylabel("População x100.000.000")

plt.bar(
    x, y,
    label = "Crescimento da população",
    color = "#e4e4e4",
    linestyle = ":"
)

plt.plot(
    x, y,
    label = "Crescimento da população",
    color = "k",
    linestyle = "-"
)

plt.legend()

plt.savefig("data/output/crescimento_populacao_brasileira.png", dpi = 72)<jupyter_output><empty_output><jupyter_text>Com base na análise do gráfico, em que ano a população brasileira superou 150 milhões de pessoas?<jupyter_code>alvo = 15 * (10**7) # 150.000.000
ano = None
valor = None

for i in range(len(dados["population"])):
    if int((dados["population"][i])) > alvo:
        ano = int((dados["ano"][i]))
        valor = int((dados["population"][i]))
        break

print(
    "O ano que a população brasileira superou " +
    "150 milhões de pessoas foi em " + str(ano) + " " +
    "com o valor de " + str(valor) + " pessoas."
)<jupyter_output>O ano que a população brasileira superou 150 milhões de pessoas foi em 1993 com o valor de 151556521 pessoas.<jupyter_text>O que é um boxplot?```Boxplot (diagrama de caixa) é umatécnica de visualização de dadosem que representa a variação de dadospor meio de quartis.```O retângulo central concentra 50% dos dados plotados. A linha ao centro indica a mediana. Os círculos representam os outlines (valores que destoam muito dos outros valores apresentados).<jupyter_code>import random
x = []
for i in range(100):
    x.append(random.randint(1,100))
plt.boxplot(x)
plt.title("Gráfico Boxplot")
plt.show()<jupyter_output><empty_output><jupyter_text>Estudo de caso Bioinformática - comparando genomas```Neste estudo de caso, faremos acomparação entre duas sequências deDNA: (1) ser humano; vs. (2) bactéria.```Estrutura do DNA. Fonte: https://se.wikipedia.org/wiki/Fiila:Dna-base-flipping.svg```DNA é uma molécula presente em todos os seres vivos, que é responsável por armazenar as características hereditárias. Ela é composta por sequências de nucleotídeos, que podem de quatro tipos: adenina, timina, citosina ou guanina.```"Computacionalmente" falando podemos representá-los através de 4 letras: A, T, C ou G.Neste estudo de caso, queremos avaliar se estruturas com funções parecidas (estamos usando sequências de RNA ribossomal) de organismos diferentes têm diferenças. Para isso vamos avaliar a quantidade de pares de nucleotídeos.```Dados utilizados:* anexados como recursos desta aula (baixe o arquivo .zip)``````Human 18S rRNA gene, complete```Fonte: https://www.ncbi.nlm.nih.gov/nuccore/M10098.1?report=fasta```Escherichia coli strain U 5/41 16S ribosomal RNA gene, partial sequence```Fonte: https://www.ncbi.nlm.nih.gov/nuccore/NR_024570.1?report=fasta Resultado FinalComo resultado final, geraremos uma figura que compara os DNAs visualmente.<jupyter_code>dna_bacteria_entrada = open(
    "data/input/bacteria.fasta"
).read().replace("\n","")

dna_bacteria_saida = open("data/output/bacteria.html","w")
cont = {}
nt = ["A", "T", "C", "G"]
for i in nt:
    for j in nt:
        cont[i + j] = 0
for i in range(len(dna_bacteria_entrada) - 1):
    cont[dna_bacteria_entrada[i] + dna_bacteria_entrada[i + 1]] += 1
i = 1
combinacoes = list(cont.keys())
combinacoes.sort()
for combinacao in combinacoes:
    transparencia = cont[combinacao] / max(cont.values())
    dna_bacteria_saida.write(
        '<div style = "width:100px; border: 1px solid #111; height: 100px; float: left; ' +
        'background-color: rgba(0, 0, 255,' +
        str(transparencia) +
        '); color: #ffffff">' +
        str(combinacao) +
        '</div>\n'
    )
    if i % 4 == 0:
        dna_bacteria_saida.write(
            '<div style = "clear: both;"></div>\n'
        )
    i = i + 1
dna_bacteria_saida.close()
dna_human_entrada = open(
    "data/input/human.fasta"
).read().replace("\n","")

dna_human_saida = open("data/output/human.html","w")
cont = {}
nt = ["A", "T", "C", "G"]
for i in nt:
    for j in nt:
        cont[i + j] = 0
for i in range(len(dna_human_entrada) - 1):
    cont[dna_human_entrada[i] + dna_human_entrada[i + 1]] += 1
i = 1
combinacoes = list(cont.keys())
combinacoes.sort()
for combinacao in combinacoes:
    transparencia = cont[combinacao] / max(cont.values())
    dna_human_saida.write(
        '<div style = "width:100px; border: 1px solid #111; height: 100px; float: left; ' +
        'background-color: rgba(0, 0, 255,' +
        str(transparencia) +
        '); color: #ffffff">' +
        str(combinacao) +
        '</div>\n'
    )
    if i % 4 == 0:
        dna_human_saida.write(
            '<div style = "clear: both;"></div>\n'
        )
    i = i + 1
dna_human_saida.close()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15736389684813754, 'fraction_numerical': 0.03472779369627507, 'mean_word_length': 4.123899001761597, 'pattern_counts': {'":': 4, '<': 52, '<?xml version=': 0, '>': 53, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '11', 'dir': 'jupyter-structured-clean-dedup', 'id': '156788', 'license': 'MIT', 'n_tokens_mistral': 3823, 'n_tokens_neox': 3527, 'n_words': 786, 'path': 'DataScienceNotes.ipynb', 'repo_name': 'AbnerErnaniADSFatec/data-science', 'size': '8725'}