Fı́sica Computacional
Fundamentos de Python
Visual Python; gráficos avanzados y visualización
Referencias
Tema 1
Python
David Martı́n y Marero
Universidad Autónoma de Madrid
[Link]@[Link]
30 de enero de 2024
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Visual Python; gráficos avanzados y visualización
Referencias
Resumen
1 Fı́sica Computacional
Definición y Necesidad
2 Fundamentos de Python
Motivación e Instalación
Versiones y Entornos de desarrollo
Programación Básica
3 Visual Python; gráficos avanzados y visualización
MatPlotLib - Gráficas
VPython - Visualización Tridimensional
VPython - Movimiento
4 Referencias
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Definición y Necesidad
Visual Python; gráficos avanzados y visualización
Referencias
Fı́sica Computacional
Computación Avanzada ≡ Fı́sica Computacional
Definición
Fı́sica Computacional es el cálculo de las respuestas a los
problemas de la Fı́sica utilizando ordenadores.
Necesidad
El experimento no es realizable
No existe solución analı́tica
Comprensión de los resultados experimentales
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Definición y Necesidad
Visual Python; gráficos avanzados y visualización
Referencias
La fı́sica hoy
Computacional
Experimental Teórica
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Definición y Necesidad
Visual Python; gráficos avanzados y visualización
Referencias
Bibliografı́a Principal
[Link] mejn/computational-physics/
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Definición y Necesidad
Visual Python; gráficos avanzados y visualización
Referencias
Bibliografı́a Principal
[Link] hisao/book/
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Definición y Necesidad
Visual Python; gráficos avanzados y visualización
Referencias
Bibliografı́a Suplementaria
[Link]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
¿Por qué Python?
Apropiado para cálculos cientı́ficos
Lenguaje Intérprete: ciclo de escritura y prueba muy rápido
Estilo: sencillo, de fácil comprensión, lectura, escritura y
aprendizaje
Potencia: desde números enteros a tensores y conjuntos
Extenso: incluye funciones para evaluar una amplia gama de
funciones cientı́ficas y matemáticas avanzadas
Pragmatismo
Lenguajes distintos y lenguas diferentes para entornos distintos
¡Python es GRATIS! El lenguaje y los programas ,,
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Instalación - Anaconda
Opción 1
Anaconda - autoinstalable
pip install vpython - en terminal de Anaconda
conda install -c vpython vpython - alternativamente
VPython [Link] - Web VPython
VPython - Jupyter - desde terminal de Anaconda
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Instalación Canónica
Opción 2
[Link] - instalar versión 3.12
[Link] - gráficos tridimensionales y animación
[Link] - gráficas de calidad publicable
[Link] - computación cientı́fica (Macintosh)
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Instalación - Anaconda Versión 5.0.1
Opción 3 - ¡Cuándo todo falla!
[Link]
Escoger Anaconda 3 - Versión 5.0.1 del 2017-10-24 (64 bits)
conda install -c vpython vpython desde Anaconda Prompt
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Principales diferencias entre Python 2 y 3
Versión 2 Versión 3
1 División entre enteros: entero 1 División entre enteros:
truncado flotante
2 print es una declaración 2 print es una función
3 input evalúa algebraicamente 3 input convierte a cadena
4 range crea una lista pero xrange itera 4 range itera
5 map crea nueva lista 5 map itera
Asemejar comportamiento de Python 2 a Python 3
from future import division, print function
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Spyder: Desarrollo eficiente
Spyder
1 Spyder (“Scientific PYthon Development EnviRonment”)
como entorno de desarrollo predilecto
2 Instalar mediante “Launcher” (Macintosh)
3 spyder en una terminal o acceso directo instalado por
Anaconda
4 Otros entornos: BlackAdder, Eric, IDLE, Komodo, Spy-Dev,
Wing...
5 Archivos de un programa deben llevar la extensión “.py”
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Nombres de variables
A partir de #, todo lo escrito en la lı́nea lo ignora el programa
# Constituye un comentario
Imprescindible para colaboraciones y trabajo posterior
\\ indica que la lı́nea de código continúa en la siguiente
Variables
De cualquier extensión a partir de letras, números y “ ”
No pueden comenzar con números
Minúsculas y mayúsculas son distintas
No utilizar espacios antes de una sentencia (“statement”)
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Tipos de variables
Tipos
Entero: 1 int
Real: 1.0 o 1.0e0 float
Complejo: 1 + 2j o 1 + 2e0j complex
Cadena: “Yo soy una cadena ,” str
En Python el tipo es dinámico y lo determina el valor asignado
Importante: Utilizar el tipo adecuado a la cantidad
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Entrada / Salida
Entrada
input() o input(“Introduce un número: ”) y el programa
espera la entrada
Importante: Cualquier entrada es una “cadena”
x = int(input()), y = float(input()), z = complex(input())
convierte al tipo deseado
Salida
print(..., ..., ...) Puede tener varios argumentos separados por
“,”
print(..., ..., ..., sep = “x”) para indicar que se utilice el
separador “x” a la salida
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Aritmética
Operadores
+, -, *, /, **, //, %
// es la división entera y redondea al menor entero más
cercano
% no es válida para complejos
Precedencia: como en álgebra
El tipo resultante de una operación es siempre el más general
de los tipos participantes, excepto para “/” cuyo resultado es
siempre flotante o complejo
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Asignación y Modificadores
Asignación
“=” Operador asignación, el valor de la derecha se calcula y
asigna a la variable de la izquierda; x = a + 5
En Python es posible la múltiple asignación: x, y = 2, a + b
Caso importante, intercambio de valores: x, y = y, x
Modificadores
+=, -=, *=, /=, //=
x /= 10∗y equivale a x = x / (10∗y)
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Paquetes y módulos
Paquetes
Colección de funciones y constantes
from math import log, pi Carga la función logaritmo natural y
la constante “pi” en la memoria
from cmath import * Carga todas las funciones de un paquete
¡y asegura problemas posteriormente!
Módulos
Subconjunto de un paquete extenso dividido por conveniencia
from [Link] import inv Carga la función inv del módulo
de álgebra lineal
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Colecciones
Listas
[1, 2, 3, ...] conjunto ordenado de elementos
[1, ..., 1 +2j, ..., “cadena”, [1, 2, 3] ] admite cualquier tipo
r = [x, y, z, ...] válido si x, y, z, ... ya tienen valores
r = [x+y, 2*y, sqrt(z), ...] definibles mediante operaciones
r[0], r[1], r[2], ..., r[m][n] identificación de los elementos
r[2] = 3+5j individualmente asignables
r = [ ] pueden crearse vacı́as
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Colecciones
Funciones y métodos principales para listas
sum[r], min[r], max[r], len[r] funciones para listas en Python
map(log,r) operación simultánea mediante map
logr = list(map(log,r)) generación de la nueva lista con list
[Link](5) agrega “5” en posición r[n+1] con .append
[Link]() elimina el último elemento con .pop
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Colecciones
Tablas
[1 2 3] número fijo de elementos
[1+2j 2+3j 3+4j] un solo tipo
r = [[a b c ] [d e f] [g h i]] cualquier dimensión
r = 2 ∗ [1 2 3] + [4 5 6] admite operaciones aritméticas
c = 16 ∗ b crea una tabla a partir de la tabla “b”
r[0], r[1], r[2], ..., r[m, n] identificación de los elementos
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Colecciones
Funciones principales para tablas; disponibles en numpy
a = empty(m, float), a = zeros([m,n], float),
a = ones(n, float) crean e inicializan tablas
b = array([[1, 2], [3, 4]], int) crea una tabla directamente
c = array(map(sqrt, b), float) crea una tabla a partir de map
y array
d = loadtxt(“[Link]”, float) crea una tabla a partir de los
valores en el fichero de texto “[Link]”
c = dot(a, b) producto de matrices o escalar de vectores
b = dot(a, v) o c = dot(v, a) producto de vectores y matrices
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Subconjuntos de listas y tablas
s = r[m: n] crea el subconjunto que va del elemento “m” al
“n-1”
t = r[m:] del elemento “m” al último de “r”
u = r[:n] desde el inicio de “r” hasta el elemento “n-1”
v = r[:] incluye la lista completa
w = r[i, k:l] columna “k” a “l-1” de la fila “i”
x = q[i:j, k:l] matriz a partir de la fila “i” a “j-1” y de las
columnas “k” a “l-1”
y = q[i, :] toda la fila “i”
z = q[:, j] toda la columna “j”
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Secuencias de control
Condiciones
==, >, >=, <, <=, ! =
if x == 10:
Usar and u or para más de una condición
La sangrı́a delimita lo que pertenece a la sentencia de control
if
if x > 10: atención a los dos puntos
print(“x es mayor que 10”) ¡atención a la sangrı́a!
print(“x es menor o igual a 10”)
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Secuencias de control
if, elif, else
x = int(input(“Introduce un entero menor o igual a 10”))
if x > 10:
print(“x es mayor que 10”)
elif x == 9: dos puntos y sin sangrı́a; elimina excesivas sangrı́as
print(“bien, pero muy cercano a 10”) sangrı́a
else: dos puntos nuevamente y sin sangrı́a Opcional
print(“¡Por fin lo haces bien!”) sangrı́a, orden vertical
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Secuencias de control
while
x = int(input(“Introduce un entero menor o igual a 10”))
while x > 10: dos puntos
print(“Tu número es mayor que 10.”) sangrı́a
x=int( input(“Inténtalo nuevamente. ¡Tú puedes!”))
print(“¡Por fin lo haces bien!”) no hay sangrı́a
else: si no se cumple la condición. Opcional
break expulsa del lazo while
continue evita el resto del lazo while y vuelve a comenzarlo
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Secuencias de control
for, range
r = [1, 3, 5]
for n in r: dos puntos
print(n) sangrı́a
for n in range(5): dos puntos
print(2 ∗ n) sangrı́a
for recorre los valores de una lista o tabla
puede incluir break y continue
range(2, 10) itera de 2 a 9
range(2, 20, 3) itera de 2 a 17 de 3 en 3
range(20, 2, -3) itera de 20 a 5 de -3 en -3
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Secuencias de control
Otras funciones para for; disponibles en numpy
for n in arange(2.0, 2.8, 0.2):
print(n)
for n in linspace(2.0, 2.8, 5):
print(n)
arange crea una tabla y admite argumentos reales y enteros
En arange, el tercer argumento da el incremento
linspace crea una tabla de reales a partir de reales o enteros
linspace incluye el último elemento
En linspace, el tercer argumento da el número de elementos
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Definición de funciones
Funciones
from math import pi, sqrt, sin, cos
def cilindricas cartesianas(r, theta, z): dos puntos
x = r ∗ cos(theta) sangrı́a
y = r ∗ sin(theta) sangrı́a
d = sqrt(x∗∗2 + y∗∗2 + z∗∗2) sangrı́a
cartesianas = array([x, y, z], float) sangrı́a
return d, cartesianas sangrı́a
distancia, coordenadas = cilindricas cartesianas(1, pi/4, 2)
print(“distancia = ”, distancia)
print(“coordenadas cartesianas = ”, coordenadas)
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Motivación e Instalación
Fundamentos de Python
Versiones y Entornos de desarrollo
Visual Python; gráficos avanzados y visualización
Programación Básica
Referencias
Definición de funciones
Funciones sin retorno
def imprime vector(r):
print(“(”, r[0], r[1], ..., r[9], “)”)
r = array(range(10), float)
imprime vector(r)
Las funciones pueden definirse en un fichero distinto, como
[Link]
from misfunciones import imprime vector
Práctica: Ejemplo 2.1 [Newman, 2012]
Práctica: Ejercicio 2.5 [Newman, 2012]
Práctica: Ejercicio 2.7 [Newman, 2012]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficas lineales
Newman [Link]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficas lineales
plot y show; disponibles en pylab
from pylab import plot, show, ylim, xlabel, ylabel, legend, title
from numpy import linspace, sin, exp, pi
x1, x2 = linspace(0.0, 2.0, 20), linspace(0.0, 2.0, 200)
y1, y2, y3 = exp(-x1), exp(-x2), sin(2 * pi * x2)
y4 = y2 * y3
l1, l3, l4 = plot(x1, y1, “bD–”), plot(x2, y3, “go-”), plot(x2, y4, “rs-”)
ylim(-1.1, 1.1)
xlabel(“Segundos”)
ylabel(“Voltios”)
legend( (l3[0], l4[0]), (“Oscilatorio”, “Amortiguado”), shadow = True )
title(“Movimiento Oscilatorio Amortiguado”)
show()
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficas lineales
plot(y) crea gráfica de la lista y en la memoria del ordenador
plot(x, y) crea gráfica de las listas [x, y]
plot(x, y, “...”) tercer argumento indica el estilo de la curva
Opcional
show() representa gráficas en pantalla y bloquea el programa
xlim, ylim, xlabel, legend, title Opcionales
[Link] para ejemplos y personalización con pylab
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Diagramas de dispersión
Newman [Link]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Diagramas de dispersión
scatter y loadtxt; disponibles en pylab y numpy respectivamente
from pylab import scatter, xlabel, ylabel, xlim, ylim, title, show, text
from numpy import loadtxt
datos = loadtxt(“[Link]”, float)
x, y = datos[: , 0], datos[: , 1]
scatter(x, y, c = x, cmap = “hsv”, s = 75)
xlabel(“Temperatura”)
ylabel(“Magnitud”)
xlim(13000, 0)
ylim(20, -5)
text(4500, 4.5, “Secuencia Principal”, fontsize = 14, style = “italic”)
text(11000, 15, “Enanas Blancas”, fontsize = 14, style = “italic”)
title(“Diagrama Hertzsprung-Russell”)
show()
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Diagramas de dispersión
scatter(x, y) crea diagrama de dispersión de la lista [x, y]
scatter(x, y, “...”) el tercer argumento agrega atributos al
diagrama de dispersión: c indica el color,
cmap el mapa de colores y s el tamaño; Opcional
text y sus parámetros fontsize y style son Opcionales
Importante loadtxt de numpy para lectura de fichero de datos
datos = loadtxt(“[Link]”, float)
x, y = datos[ : , 0], datos[ : , 1]
scatter(x, y)
show()
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficas de contorno
Newman [Link]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficas de contorno
imshow, colorbar; disponibles en pylab
from pylab import imshow, show, jet, colorbar
from numpy import loadtxt
datos = loadtxt(“[Link]”, float)
imshow(datos), jet(), colorbar()
show()
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficas de contorno
imshow(datos) crea una gráfica de contorno de la matriz datos
los ejes son ı́ndices de las filas y columnas de la matriz datos
el eje y representa las filas i; el eje x representa las columnas j
imshow(datos, origin =“lower”) para origen habitual
los mapas de colores son funciones persistentes de pylab
Ejemplos: gray(), hsv(), hot(), spectral(), jet() (por defecto)
colorbar() para proporcionar valores cuantitativos
extent[xi , xf , yi , yf ] para escala de los ejes
aspect = r para cambio de razón vertical a horizontal
xlim, ylim escogen el rango de valores a representar
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficos tridimensionales
Newman [Link]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficos tridimensionales
sphere, color, vector; disponibles en vpython
from vpython import sphere, color, vector
L, M, N = 5, 4, 3
RNa, RCl = 0.5, 0.4
colNa, colCl = [Link], [Link]
...
...
...
for i in range(-L, L+1, 2):
sphere(pos = vector(i, j, k), radius = RNa, color =
colNa)
for i in range(-L+1, L+1, 2):
sphere(pos = vector(i, j, k), radius = RCl, color =
colCl)
...
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
for k in range(-N, N+1, 2):
for j in range(-M, M+1, 2):
for i in range(-L, L+1, 2):
sphere(pos = vector(i, j, k), radius = RNa, color = colNa)
for i in range(-L+1, L+1, 2):
sphere(pos = vector(i, j, k), radius = RCl, color = colCl)
for j in range(-M+1, M+1, 2):
for i in range(-L, L+1, 2):
sphere(pos = vector(i, j, k), radius = RCl, color = colCl)
for i in range(-L+1, L+1, 2):
sphere(pos = vector(i, j, k), radius = RNa, color = colNa)
for k in range(-N+1, N+1, 2):
for j in range(-M, M+1, 2):
for i in range(-L, L+1, 2):
sphere(pos = vector(i, j, k), radius = RCl, color = colCl)
for i in range(-L+1, L+1, 2):
sphere(pos = vector(i, j, k), radius = RNa, color = colNa)
for j in range(-M+1, M+1, 2):
for i in range(-L, L+1, 2):
sphere(pos = vector(i, j, k), radius = RNa, color = colNa)
for i in range(-L+1, L+1, 2):
sphere(pos = vector(i, j, k), radius = RCl, color = colCl)
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Gráficos tridimensionales
sphere() crea una esfera
sphere(pos = vector(x, y, z), radius = R, color = [Link])
crea esfera roja de radio R en (x, y, z)
s = sphere() crea variable s tipo sphere
[Link] = R, [Link] = [Link], [Link] = vector(x, y, z)
permiten cambiar caracterı́sticas en vivo
box, cone, cylinder, pyramid, arrow para otros objetos, con sus
propios parámetros Opcionales
[Link] es la referencia básica
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Movimiento
Newman [Link]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Movimiento
canvas, rate; disponibles en vpython
from vpython import canvas, color, rate, sphere, vector
from math import cos, sin, pi
from numpy import arange
canvas(x = 500, y = 200, width = 500, height = 500, center = [0,0,1], \
forward = [0, 0, -1], background = [Link], foreground = [1,1,0])
s=[]
[Link](sphere(pos=vector(1, 0, 0), radius = 0.25, color = [Link])
for theta in arange(0, 10*pi, 0.1):
rate(30)
x = cos(theta)
y = sin(theta)
s[0].pos = vector(x, y, 0)
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
MatPlotLib - Gráficas
Fundamentos de Python
VPython - Visualización Tridimensional
Visual Python; gráficos avanzados y visualización
VPython - Movimiento
Referencias
Movimiento
rate(x) fuerza un intervalo de 1/x de segundo desde último
rate
canvas permite cambiar las caracterı́sticas de la pantalla de
proyección y el punto de observación
d = canvas() crea variable s tipo canvas
[Link] = [Link], etc. permite cambiar
caracterı́sticas de la pantalla posteriormente
[Link] = False elimina el cambio automático de pantalla
Práctica: Ejercicio 3.1 [Newman, 2012]
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Visual Python; gráficos avanzados y visualización
Referencias
Referencias
Mark Newman (2012)
Computational Physics
[Link]
Python
[Link]
SciPy y Numpy
[Link]
Matplotlib
[Link]
Visual Python
[Link]
Stackoverflow
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.
Fı́sica Computacional
Fundamentos de Python
Visual Python; gráficos avanzados y visualización
Referencias
Fin del Tema 1
David Martı́n y Marero U. Autónoma de Madrid. Computación Avanzada. Tema 1.