
Error al guardar gráfica.
Publicado por Zhisi (21 intervenciones) el 05/01/2018 11:58:16
Hola a todos.
Estoy creando una función para representar datos en forma de gráfica y poder guardarla en forma de imagen. El problema es que cuando crea la imagen, ésta está en blanco.
El script principal es:
La función está en una librería creada por mí.
Si llamo a la función desde el script principal, la gráfica se muestra por pantalla correctamente y se genera un fichero en el directorio indicado y con el nombre y formatos correctos. Pero la imagen está en blanco.
Sin embargo, si copio los comandos de la función en el script principal y ejecuto el código, todo funciona correctamente y se me genera correctamente la imagen de la gráfica en el directorio indicado y con el nombre y extensión indicados.
¿Alguna idea de dónde puede estar el problema?
Estoy creando una función para representar datos en forma de gráfica y poder guardarla en forma de imagen. El problema es que cuando crea la imagen, ésta está en blanco.
El script principal es:
1
2
3
4
5
6
7
8
import f02_graphs as gr
y = [1, 7, 3, 4]
x = [0, 1, 2, 3]
d = "Z:\Trabajos\Python 3\proyectos\p00_banco_de_pruebas"
gr.one_line(x, y, save=d, title='Kosovo')
La función está en una librería creada por mí.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import matplotlib.pyplot as plt
def one_line(x, y, show=True, save=False, title="Title", xlab="Abscissa",
ylab="Ordinate"):
# Representa con una linea la lista de datos pasada como parametro.
#
# x: almacena los datos de la coordenada x.
# show: determina si se muestra la grafica por pantalla.
# save: almacena el directorio para guardar la grafica como una
# imagen. Si su valor es None, no se guarda la imagen.
# title: titulo de la grafica.
# xlab: etiqueta del eje x.
# ylab: etiqueta del eje y.
#
# Creamos la grafica.
plt.figure()
# Dibujamos la representacion de los datos.
plt.plot(x, y)
# Añadimos el titulo.
plt.title(title)
# Añadimos las etiquetas a los ejes.
plt.xlabel(xlab)
plt.ylabel(ylab)
# Añadimos una rejilla.
plt.grid(True)
# Ajustamos los ejes a la zona con datos.
plt.axis('tight')
#
# Mostramos la imagen de la grafica por pantalla.
if show:
plt.show()
#
# Guardamos la imagen en un directorio introducido por el usuario.
if save != False:
plt.savefig(save + "/" + title + ".png")
Si llamo a la función desde el script principal, la gráfica se muestra por pantalla correctamente y se genera un fichero en el directorio indicado y con el nombre y formatos correctos. Pero la imagen está en blanco.
Sin embargo, si copio los comandos de la función en el script principal y ejecuto el código, todo funciona correctamente y se me genera correctamente la imagen de la gráfica en el directorio indicado y con el nombre y extensión indicados.
¿Alguna idea de dónde puede estar el problema?
Valora esta pregunta


0