prefacio
Recientemente, estoy completando una tesis sobre pronóstico del tiempo, que involucra aprendizaje profundo y mapeo del tiempo. Creo que todavía es necesario escribir algunos resúmenes de mi experiencia en este proceso y aprovechar esta oportunidad para comunicarme con los colegas.
1. Comandos básicos
Cuando usamos el aprendizaje profundo, definitivamente usaremos comandos de dibujo, pérdida de dibujo y val_loss, etc., para ver el efecto del modelo.
plt.plot(x,y,lw=,ls=,c=, alpha=, label=)
x: los datos de la coordenada x
y: los datos de la coordenada y
lw: especifica el ancho de línea
ls: especifica el estilo de línea, ls='-' es una línea sólida, ls='--' es una línea discontinua, ls='-.' es una línea punteada, ls=':' es una línea discontinua
c: especifica el color de la línea, c='r' es rojo, c='k' es negro, c='y' es amarillo
alfa: especifica la transparencia de la línea, cuanto menor sea el valor, más transparente
etiqueta: especifica el significado de la línea
Ejemplo de código:
#导入库
import matplotlib.pyplot as plt
import numpy as np
#设定画布。dpi越大图越清晰,绘图时间越久
fig=plt.figure(figsize=(4, 4), dpi=300)
#导入数据
x=list(np.arange(1, 21))
y=np.random.randn(20)
#绘图命令
plt.plot(x, y, lw=4, ls='-', c='b', alpha=0.1)
plt.plot()
#show出图形
plt.show()
#保存图片
fig.savefig("画布")
Resultado del dibujo:
2. Dibujo basado en datos de Excel
En python, hay un paquete de biblioteca para procesamiento de datos llamado pandas
# 导包
import pandas as pd
# 读取excel文件
pd.read_excel('文件所在路径')
Extraiga una columna de datos en Excel: nombre de archivo ['nombre de columna'], el valor de retorno es una lista.
Después de obtener los datos que queremos en Excel, el siguiente paso es dibujar:
...
# 第一步绘制画布
fig=plt.figure(figsize=(7, 4), dpi=200)
# 第二步添加绘图区.
# subplot命令是在画布上添加一个绘图区,括号里的内容转述为汉字为:“创建一个一行一列的绘图区(一行一列就只有一个绘图区),ax1是第一个绘图区,facecolor用来设置画布背景颜色,默认为白色
ax1 = fig.add_subplot(111, facecolor='green')
Si desea crear un área de subgráfico con dos filas y dos columnas (u otras dimensiones), respectivamente ax1, ax2, ax3, ax4:
ax1=fig.add_subplot(221)
ax2=fig.add_subplot(222)
ax3=fig.add_subplot(223)
ax4=fig.add_subplot(224)
El efecto es el siguiente:
3. Combine los ejes de coordenadas x (o y) de un gráfico y agregue una leyenda legend()
Para lograr el efecto de la imagen de arriba, el foco está en ax2=ax1.twinx(), ax2 y ax1 comparten el eje x, pero ax1 usa el eje y izquierdo, y ax2 usa el eje y derecho:
fig=plt.figure(figsize=(7,4),dpi=200) # 新建画布
ax1=fig.add_subplot(111) # 设置绘图区
line1,=ax1.plot(times,temps,'r:',lw=1,label='气温') # 创建折线
bar1 =ax1.bar(times,rains,color='b',label='降水量') # 创建条状
ax2=ax1.twinx() # 设置共用x轴
line2,=ax2.plot(times,pressures,'k-',lw=1.2,label='气压')
# legend用来设置图例,还可以添加参数ncol='',该参数用来设置图例的列数,用于对齐
plt.legend((line1,bar1,line2),('气温','降水量','气压'),loc='center left',frameon=False,framealpha=0.5)
ax1.set_xlabel('时间 \ h') # 设置x轴
ax1.set_ylabel('气温(℃)\降水量(mm)') # 设置左侧y轴
ax2.set_ylabel('气压(hPa)') # 设置右侧y轴
plt.title("----") # 设置图的名称
plt.show()
4. Ajusta el estilo de fuente
Ajuste mediante un diccionario, almacene el nombre del parámetro y el tamaño del valor especificado que debe modificarse en el diccionario y almacene más parámetros:
font={'size':30,'color':'red'}
ax.set_xlabel('--',fontdict=font)
ax.set_ylabel('--',fontdict=font)
5. Dibujar líneas de cuadrícula
ax.grid() # 开启x和y轴的网格
ax.grid(ls='--') # 开启x和y轴的虚线网格
ax.grid(True,axis='x') # 开启x轴的网格
ax.grid(True,axis='y') # 开启y轴的网格
6. Combina los ejes de coordenadas de los dos gráficos
Configure el lienzo de la siguiente manera:
fig,((ax1),(ax2))=plt.subplots(2,1,figsize=(5,5),dpi=200,sharex='all')
fig.subplots_adjust(hspace=0)
Siete funciones poco utilizadas
1.ax.set_ylim(),ax.set_xlim()
Cuando se comparte el eje x(y), la escala cero del eje y(x) en ambos lados es inconsistente, y xlim e ylim se usan para establecer el rango del eje de coordenadas.
2.set_minor_locator()、set_major_locator()
set_minor_locator se usa para establecer o modificar el tamaño de la escala menor sobre la base de la escala principal, y set_major_locator se usa para modificar la visualización de unidades de la escala principal. Antes de su uso, el paquete de la biblioteca debe importarse:
import matplotlib.ticker as ticker
Por ejemplo:
(1) Aquí, establezca la escala secundaria en 0,1 unidades.
ax1.yaxis.set_minor_locator(ticker.MultipleLocator(0.1))
(2) Configure la escala principal a la derecha para mostrar cada 10 unidades.
ax2.yaxis.set_major_locator(ticker.MultipleLocator(10))