Busqué en línea y no pude encontrar nada sobre esto que haga lo que quiero.
Me gustaría guardar una matriz numpy como imagen, pero en lugar de tener una imagen colorida, quiero una representación en blanco y negro de los valores de píxeles en su ubicación de cuadrícula correspondiente.
Por ejemplo:
import numpy as np
x = np.array([[1,2],[3,4]])
print(x)
# [[1 2]
# [3 4]]
Me gustaría guardar esto como una imagen (.PNG) similar a la siguiente:
Mi código actual crea una cuadrícula y coloca los números dentro, pero es muy difícil ajustar todo para que sea presentable en un trabajo de investigación.
Entonces, en lugar de publicar mi código demasiado complejo, me preguntaba si hay una función integrada para manejar esto en unas pocas líneas de código.
table
que sería un buen lugar para comenzar. No lo he usado lo suficiente como para dar una buena respuesta.table
.Respuestas:
Usaría LaTeX para generar las tablas, ya que se ven elegantes y puedes generar una imagen o ponerlas directamente en tu documento. Usé el siguiente código para lograr esto:
Aquí,
preview
se usa la clase de documento que devuelve una imagen redimensionada al contenido del documento, es decir, solo la tabla. Solotabular
se utiliza un entorno para presentar los datos. Hay barras horizontales y verticales entre las celdas, pero es muy fácil cambiar esto. En la variable,tab
los datos se procesan para cada fila y se convierten en una cadena. Tenga en cuenta que debe especificar el formato de salida en esta posición. Lo configuré para%d
que todo se convierta en enteros.Si desea utilizar la tabla directamente en una fuente de látex, debe eliminar
documentclass
y\begin{document}
también\end{document}
en las variables destart
yend
. Finalmente, todo se junta en una fuente de látex que luego se almacena en el disco comotable.tex
. Si solo desea la imagen al final, se compila el archivo resultantetable.pdf
.Así es como se ve la salida. Pero como dije, es muy fácil cambiar el aspecto ya que es LaTeX :)
Aquí hay otro ejemplo con una matriz grande (14 x 14), llena de números aleatorios que van del 0 al 100:
fuente
Puede usar la
table
función dematplot
para trazar la tabla simple. Además, puede guardar la trama como PNG. A continuación se muestra el código simple para sus requisitos:El tamaño del gráfico o la imagen se puede ajustar cambiando los
figsize
parámetros en la línea:plt.figure(figsize=(x,y))
Para una mejor apariencia, se puede modificar de la siguiente manera:
fuente
fig = plt.figure(figsize = x.shape)
Tal vez esto ayude:
fuente