tabla = []

ATOMOS = ["B","C","N","O","P","S","F","I","Br","Cl"]

ENLACES = ["","=","#"] #Simples, dobles o triples

import random

for _ in range(10000):
    temperatura = random.randint(0,473)
    
    molecula = []
    for _ in range( random.randint(0,600)):
        molecula.append(random.choice(ATOMOS))
        molecula.append(random.choice(ENLACES))
    molecula.append(random.choice(ATOMOS))
    
    molecula = "".join(molecula)
    tabla.append( (molecula,temperatura) )

tabla[:3]

"""
Explanation: Clase Analisis y Presentacion de Datos
Determinacion de punto de la influencia de los enlaces de carbono en el punto de fusion
Suponemos que la cantidad de enlaces dobles en una molecula tiene una relacion directa con el punto de fusion de la sustancia. El problema, es que por ahora, datos no tenemos, asi que vamos a tener que armarlos nosotros.
Para este caso, vamos a suponer que los datos de las moleculas estan en formato SMILES Simplified Molecular- Input Line-Entry System. Esta notacion ademas de poder ser cargada desde y hacia archivos de texto plano facilmente, e incluso hay bibliotecas para trabajar sobre ello como RdKit
End of explanation
"""


def transformar_entrada(molecula):
    return sum(1 for i in range(len(molecula)) if molecula.startswith("C=C", i))

transformar_entrada("C=C")

transformar_entrada("C=C=C")

tabla2 = []

for molecula,temperatura in tabla:
    transformado = transformar_entrada(molecula)
    tabla2.append((transformado,temperatura))

"""
Explanation: Ahora que tengo mis datos, debo definir como transformarlos a cosas que me sirvan al igual que hice con las letras de las canciones
End of explanation
"""


random.sample(tabla2,10)

mediciones = {}
for cantidad,temperatura in tabla2:
    mediciones[cantidad] = mediciones.get(cantidad,[])
    mediciones[cantidad].append(temperatura)

"""
Explanation: Checkeo si los valores se transformaron correctamente
End of explanation
"""


eje_x = []
eje_y = []

for cantidad in mediciones:
    for temperatura in mediciones[cantidad]:
        eje_x.append(cantidad)
        eje_y.append(temperatura)

import plotly.offline as py
import plotly.graph_objs as go

py.init_notebook_mode(connected=True)

trace = go.Scatter(
    x =  eje_x,
    y =  eje_y,
    mode = 'lines',
   name = "Cantidad Vs Temperatura"
)

py.iplot([trace])

"""
Explanation: Como son muchos datos, la mejor forma de visualizarlos seria graficandolos. Ejemplo de una muy mala forma de graficar los datos:
End of explanation
"""


