Python—aprendizaje de la serie de bibliotecas matplotlib (1): función de trazado (incluyendo título, xlabel, ylabel, función de leyenda)

Tabla de contenido

introducción

función de trama

(1) Un ejemplo sencillo

(2) Descripción del parámetro

         1. marcador (cadena de estilo de marcador)

         2. color (color)

         3. estilo de línea 和 ancho de línea

(3) Una manera simple de escribir

(4) Dibujar varias líneas en un gráfico

(5) Complementos de embellecimiento para gráficos generales

        1. Título

        2. eje x - nomenclatura del eje y

        3. Leyenda 

Resumir


Serie de artículos para aprender:

Python: aprendizaje de la serie de bibliotecas matplotlib (1): función de trazado


introducción

        Cuando estaba estudiando, me refería principalmente a los siguientes sitios web, ¡y también puedes aprender por ti mismo! Y este artículo está sesgado hacia los principiantes para aprender. El contenido de este artículo debe ser pediatría ~~, por supuesto, este artículo también es más conveniente para mí para encontrar parámetros directamente cuando hago un seguimiento de los dibujos. Es un sistema de comparación de artículos. Espero que pueda ayudar a todos, si tienen alguna pregunta, por favor critíquenme y corríjanme, yo también estoy progresando continuamente.

        El contenido del artículo puede ser más, puede encontrar mejor lo que desea según el catálogo, si hay alguna reimpresión, indique la fuente, gracias ~

         Como una serie de artículos, continuaré actualizando. De lo contrario, tengo que escribir demasiado a la vez, y algunas funciones se agregarán con actualizaciones posteriores.

matplotlib — Documentación de Matplotlib 3.7.1 https://matplotlib.org/stable/api/matplotlib_configuration_api.html

función de trama

(1) Un ejemplo sencillo

        Veamos primero un código simple:

import matplotlib.pyplot as plt
plt.plot([1,2])
plt.show()

        Esto dibuja una imagen muy simple. Tenga en cuenta que el interior [1,2] representa la coordenada vertical de 1 a 2, por lo que, de hecho, solo se necesita un parámetro y en la función de trazado para dibujar la imagen.

        Entonces hemos dado la coordenada y, ¿cómo se determina la coordenada x? Puedes observar que el eje x comienza desde 0 y hay dos números en la matriz, por lo que llega a 1. Pongamos un ejemplo, si hay 8 números en la matriz:

import matplotlib.pyplot as plt
plt.plot([1,2,5,10,19,56,64,80])
plt.show()

        Descubrimos que el eje x comienza desde 0 según la cantidad de elementos en la matriz. Por supuesto, si desea definir las coordenadas del eje x usted mismo, podemos agregarlo al frente. El primer parámetro representa el eje x, y el último parámetro representa el eje y :

import matplotlib.pyplot as plt
plt.plot([1,2,3,4],[1,2,3,8])
plt.show()

         Pero tal gráfico es demasiado feo, podemos agregarle varios parámetros para embellecer y perfeccionar nuestro gráfico ~ El siguiente código:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4],[1,2,3,8],color='green', marker='o', linestyle='dashed',
     linewidth=2, markersize=12)
plt.show()

        ¿Se ve mucho mejor que la última vez? Aquí agregué muchos parámetros contenidos en la función de trazado. Te los explicaré uno por uno a continuación, y también hay muchos parámetros que también son aplicables a otras funciones de trazado en matplotlib .

(2) Descripción del parámetro

        Además de x e y mencionados anteriormente, los parámetros más utilizados son marcador, color, estilo de línea, etc. Hablemos de ellos uno por uno.

import matplotlib.pyplot as plt
x = [1,2,3]
y = [1,2,3]
plt.plot(x,y, marker='o',color='r')
plt.show()

 1. marcador (cadena de estilo de marcador)

        Puede definir el estilo de cada punto. Por ejemplo, la 'o' de arriba representa un círculo, y tiene muchos otros estilos:

'.'

marcador de puntos

','

marcador de píxeles

'o'

marcador circular

'v'

marcador de triángulo_abajo (marca de triángulo invertido)

'^'

marcador de triángulo_arriba (marca de triángulo normal)

'<'

marcador de triángulo_izquierda (marca de triángulo izquierdo)

'>'

marcador de triángulo_derecho (marca de triángulo rectángulo)

'1'

marcador tri_down

'2'

marcador tri_up

'3'

marcador tri_left

'4'

marcador tri_right

'8'

marcador de octágono

's'

marcador cuadrado

'p'

marcador del pentágono

'P'

marcador más (relleno)

'*'

marcador de estrella (logotipo de triángulo de estrella)

'h'

marcador hexagonal1

'H'

marcador hexagonal2

'+'

más campos

'x'

x marcador

'X'

marcador x (relleno)

'D'

marcador de diamante (diamante... es en realidad un logotipo de diamante)

'd'

marcador de diamante delgado

'|'

marcador de línea v

'_'

marcador de arcilla

        Por lo demás, intente hacer coincidir ~ con el marcador y hay muchos parámetros a continuación:

marcadorbordecolor o mec

color (el color del borde)

ancho del borde del marcador o mew

float (ancho del borde)

color de la cara del marcador o mfc

color (color interior)

marcadorfacecoloralt  o mfcalt

color (no sé lo que significa, pero puedes ignorarlo si no lo usas mucho)

tamaño de marcador o ms

float (tamaño del estilo del marcador)

        Por ejemplo, puede verlo de un vistazo combinando los significados anteriores:

import matplotlib.pyplot as plt
x = [1,2,3]
y = [1,2,3]
plt.plot(x,y, marker='o',color='black',
         markersize=10,markeredgecolor='red',
         markerfacecolor='blue',markeredgewidth=3,
         )
plt.show()

2. color (color)

        matplotlib da varios colores básicos en la documentación de referencia:

'b'

azul

'g'

verde

'r'

rojo

'c'

cian

'm'

magenta

'y'

amarillo

'k'

negro

'w'

blanco

        Pero, de hecho, no uso estos esquemas de color cuando juego o hago investigación científica. Podemos encontrar otros colores por nosotros mismos. El siguiente artículo es muy bueno. ¡ Está permitido!

Tabla de comparación hexadecimal         sobre colores

import matplotlib.pyplot as plt
x = [1,2,3]
y = [1,2,3]
plt.plot(x,y, marker='s',color='MediumSpringGreen') #适中的春天的绿色~~
plt.show()

 3. estilo de línea 和 ancho de línea

        Puedes entender estos dos parámetros literalmente. Uno es para ajustar el estilo de la línea dibujada, y el otro es para ajustar el grosor de la línea. Pongamos un ejemplo:

import matplotlib.pyplot as plt
x = [1,2,3]
y = [1,2,3]
plt.plot(x,y, marker='o', linestyle='-.' , linewidth = 3)
plt.show()

        Los siguientes son los estilos de línea específicos:

'-'

estilo de línea sólida

'--'

estilo de línea discontinua

'-.'

estilo de línea de puntos y guiones (estilo de línea de puntos)

':'

estilo de línea punteada (estilo de punto cuadrado)

(3) Una manera simple de escribir

        我们可以把上述参数中的marker、color和linestyle写在一起,或者他们之间的两两组合,此时他们的的参数名可以省略,并写在一个' '中,我们看下面的例子

import matplotlib.pyplot as plt
x = [1,2,3]
y = [1,2,3]
plt.plot(x,y,'r>--')
plt.show()

         上述是把颜色红色、点的样式右三角形和虚线风格放在一起。注意:如果要这么去写,颜色必须要写上述matplotlib在参考文档给出的,否则你就单独把color拿出来写!!!点的风格和线的风格我也都在上面给出了,大家根据需要自己选择。

(4)一个图上画多条线

        我们使用plot函数,也可以在一个图上画多条线的,如下:

mport numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题
a = [0,1,2,3,4]
b = [10,9,8,7,6]
c = [1,2,3,4,5]
d = [9,1,8,2,5]
font = {                      #设置一个后续xy轴和标题使用的字体(包括大小、颜色等)
        'color':  'black',
        'weight': 'normal',
        'size': 20,
        }
plt.plot(a, b, 'k--' , a, c, 'k:', a, d, 'k')  #重点! 三个线的代码写在一起
plt.legend(('NO.1', 'NO.2', 'NO.3'),     #图例
           loc='best', shadow=True, fontsize=16)
plt.xlabel('x轴',fontdict=font)
plt.ylabel('y轴',fontdict=font)
plt.title('一张图',fontdict=font)
plt.show()

 

(5)通用的图形的美化补充

        要画出一个比较美观的图像,单靠上面的调整肯定是不够的,我们还可以给图像加上标题、图例、横纵坐标含义等等,我们接下来就说几个常用的!

1. 标题

        先说明一下其中包含的参数,我们在给出代码及说明:

import matplotlib.pyplot as plt
plt.title(label, fontdict=None, loc=None, pad=None , y=None, **kwargs)
#label      指的是你输入标题的名称
#fontdict   指的是使用字典控制文本的外观,例如文本大小,文本对齐方式等
#           {fontdict = {‘fontsize’:rcParams [‘axes.titlesize’],
#           ‘fontweight’:rcParams [‘axes.titleweight’],
#           ‘verticalalignment’:‘baseline’,
#           ‘horizontalalignment’:loc}

#loc        指的是标题的位置,例如'center','left','right'等
#pad        指的是标题距轴顶部的偏移量(以磅为单位)  float型
#y          指的是标题的垂直轴位置(1.0为顶部),可以为负值,标题会跑到图的底下  float型
#**kwargs   指的是使用其他关键字参数作为文本属性,比如color、fonstyle、linespacing、background等

        接下来我们以具体的例子来实践一下: 

import matplotlib.pyplot as plt
x = [1,2,3]
y = [1,2,6]
plt.plot(x,y,'c>--')
#plt.title(label="hello world")
plt.title("hello world")
plt.show()

         其实,正常情况下,很多都直接定个标题就完事了,上方代码注释部分和下面的代码是一个意思,只是下面把label省略了。在举个例子:

import matplotlib.pyplot as plt
x = [1,2,3]
y = [1,2,6]
plt.plot(x,y,'c>--')
plt.title(label="hello world",loc="left",fontdict={'fontsize':50})
plt.show()

         另一个例子:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.0, 5.0, 100)
y = np.cos(2*np.pi*x) * np.exp(-x)

font = {'family': 'serif',
        'color':  'darkred',
        'weight': 'normal',
        'size': 16,
        }
plt.plot(x,y)
plt.title(label="Damped exponential decay",loc="right",fontdict=font)
plt.show()

         其他的参数大家也可以自己多去尝试,有什么问题随时可以跟我讨论(评论区私信都可以~)

2. x轴 - y轴命名

        它们分别是xlabel和ylabel!我们还是先说一下他们中的常用参数:

import matplotlib.pyplot as plt
plt.xlabel(xlabel, fontdict=None, labelpad=None, loc=None, **kwargs))
plt.ylabel(ylabel, fontdict=None, labelpad=None, loc=None, **kwargs))
#xlabel或ylabel  指的是你输入x轴或y轴的名称
#labelpad   类型为浮点数,默认值为None,即标签与坐标轴的距离
#loc        指的是x或y轴名称的位置,例如:针对x轴为'center','left','right';针对y轴为'center','top','bottom'
#**kwargs   指的是Text对象关键字属性,用于控制文本的外观属性,如字体、文本颜色等

        举个栗子!

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)

plt.plot(t, s)
plt.title(r'$\mathcal{A}\sin(\omega t)$', fontsize=20)
plt.xlabel('Time [s]')
plt.ylabel('Voltage [mV]')
plt.show()

3. 图例 

        老规矩,看一下它的参数,这里matplotlib说明文档里面给了一大堆,感觉有一些也用不上,我也参考了一些资料选出一些比较常用的:

(2 mensajes) Python: explicación detallada de los parámetros de plt.legend o ax.legend Configuración de la leyendaicono-predeterminado.png?t=N3I4

import matplotlib.pyplot as plt
plt.legend(loc='lower right', fontsize=12, frameon=True, fancybox=True, framealpha=0.2, borderpad=0.3,ncol=1, markerfirst=True, markerscale=1, numpoints=1, handlelength=3.5)

#loc:图例位置,可取(‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center , right’, ‘lower center’, ‘upper center’, ‘center’) ;若是使用了bbox_to_anchor,则这项就无效了
#fontsize:代表字体大小,int或float或{‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’}
#frameon:是否显示图例边框,
#ncol:图例的列的数量,默认为1,
#title:为图例添加标题
#shadow:是否为图例边框添加阴影,
#markerfirst:True表示图例标签在句柄右侧,false反之,
#markerscale:图例标记为原图标记中的多少倍大小,
#numpoints:表示图例中的句柄上的标记点的个数,一般设为1,
#fancybox:是否将图例框的边角设为圆形
#framealpha:控制图例框的透明度
#borderpad:图例框内边距
#labelspacing:图例中条目之间的距离
#andlelength:图例句柄的长度
#bbox_to_anchor:(横向看右,纵向看下),如果要自定义图例位置或者将图例画在坐标外边,用它

Por ejemplo, la imagen         que dibujé arriba (abajo) es un ejemplo de una leyenda, donde mejor se refiere a colocar la leyenda en la mejor posición de la imagen. ¡También puede experimentar con los parámetros restantes, para que pueda comprender más profundamente!

Resumir

        Por supuesto, todavía hay muchas funciones en el aprendizaje anterior que pueden mejorar nuestros gráficos, lo dejaremos para el próximo artículo para explicar, y hablaremos de una nueva función gráfica.

        Espero que puedas señalar los problemas a tiempo si encuentras algún problema. También estoy aprendiendo y mejorando constantemente ~~~ Gracias por mirar, si te ayuda, por favor dale un pulgar hacia arriba ~

Supongo que te gusta

Origin blog.csdn.net/m0_51440939/article/details/130600205
Recomendado
Clasificación