rxnplot es un paquete de Python 3 para dibujar diagramas de niveles de energía de reacciones químicas compatible con documentos de Jupyter.
Puedes instalar rxnplot en tu computadora con pip:
pip install rxnplot
o puedes usar rxnplot en Binder sin necesidad de instalar nada.
Para crear un diagrama tendrás que usar Python, pero incluso si nunca lo has usado puedes aprender a construir diagramas rápidamente.
from rxnplot import plot, energy
p = plot(height=10.0, zero=energy(0.0, 'kjmol'), units='kcalmol', decimals=1, qualified=True)
El objeto plot representa un diagrama inicialmente en blanco y requiere como argumentos:
- height - el tamaño vertical del gráfico en cm.
- bgcolor - el color de fondo de la imagen o
None
. Si esNone
, el fondo será transparente. - zero - un objeto energy que representa el cero de las energías relativas.
- units - las unidades de energía del diagrama.
- decimals - el número de decimales que se usarán para mostrar las energías en el diagrama.
- qualified - si es
True
, se mostrarán las unidades de energía en el diagrama, de lo contrario sólo se mostrarán los valores numéricos.
El objeto energy requiere dos argumentos: la energía como un número de punto flotante y las unidades.
Las unidades de energía pueden ser 'kjmol'
(kilojulios por mol), 'eh'
(hartrees), 'ev'
(electronvoltios), 'kcalmol'
(kilocalorías por mol) o
'wavenumber'
(números de onda).
Los colores deben ser nombres de colores SVG.
Ahora puedes empezar a agregar elementos al gráfico.
p.new_baseline(color='black', mode='dashed', opacity=0.1)
El método new_baseline crea una línea que representa el cero de energía y requiere como argumentos:
- color - el color de la línea base.
- mode - controla la apariencia de la línea base, puede ser
'normal'
o'dashed'
. - opacity - un flotante entre 0.0 y 1.0 que representan la opacidad de la línea base.
p.new_level('1', energy(0.0, 'kcalmol'))
p.new_level('TS1', energy(8.1, 'kcalmol'), color='green')
p.new_level('2', energy(-6.4, 'kcalmol'))
p.new_branch('1')
p.new_level('TS2', energy(12.6, 'kcalmol'), color='red')
p.add_level('2')
El método new_level agrega un nuevo nuevo nivel de energía y requiere como argumentos:
- name - el nombre del nivel, que debe ser único.
- energy - un objeto energy que representa la energía relativa del nivel.
- offset - el desplazamiento horizontal del nivel respecto al nivel anterior (el valor por defecto es 1.0).
- color - el color del nivel (el valor por defecto es
'black'
).
El método add_level agrega un nuevo nivel de energía existente y requiere como argumentos:
- name - el nombre del nivel.
El método new_branch
inicia una nueva rama del perfil y requiere como argumentos:
- name - el nombre del nivel.
p.render()
p.write('diagrama.png')
El método write acepta la opción scale:
p.write('diagrama.png', scale=2)
y también crea archivos PDF:
p.write('diagrama.pdf')