Notas de estudo Python sessenta e três dias (rótulos e títulos dos eixos Matplotlib)

Rótulos e títulos do eixo Matplotlib

Podemos usar os métodos xlabel() e ylabel() para definir os rótulos para os eixos x e y.

# 实例 1
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y)

plt.xlabel("x - label")
plt.ylabel("y - label")

plt.show()

título

Podemos usar o método title() para definir o título.

# 实例 2
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y)

plt.title("RUNOOB TEST TITLE")
plt.xlabel("x - label")
plt.ylabel("y - label")

plt.show()

Exibição gráfica chinesa

Matplotlib não suporta chinês por padrão, podemos usar o seguinte método simples para resolvê-lo.

Aqui usamos Siyuan Heiti, que é uma fonte de código aberto lançada pela Adobe e Google.

Site oficial: https://source.typekit.com/source-han-serif/cn/

Endereço GitHub: https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese

Após abrir o link, basta escolher um:

Você pode baixar uma fonte OTF, como SourceHanSansSC-Bold.otf, e colocar este arquivo no arquivo de código atualmente em execução:

O arquivo SourceHanSansSC-Bold.otf é colocado no arquivo de código atualmente executado:

# 实例 3
import numpy as np 
from matplotlib import pyplot as plt 
import matplotlib
 
# fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径
zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") 
 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("测试", fontproperties=zhfont1) 
 
# fontproperties 设置中文显示,fontsize 设置字体大小
plt.xlabel("x 轴", fontproperties=zhfont1)
plt.ylabel("y 轴", fontproperties=zhfont1)
plt.plot(x,y) 
plt.show()

Além disso, também podemos usar fontes do sistema:

# 实例 4
from matplotlib import pyplot as plt
import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for i in a:
    print(i)
# 打印出你的 font_manager 的 ttflist 中所有注册的名字,找一个看中文字体例如:STFangsong(仿宋),然后添加以下代码即可:

plt.rcParams['font.family']=['STFangsong']

Além disso, também podemos personalizar o estilo da fonte:

# 实例 5
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
 
# fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径,size 参数设置字体大小
zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf", size=18)
font1 = {
    
    'color':'blue','size':20}
font2 = {
    
    'color':'darkred','size':15}
x = np.arange(1,11)
y =  2  * x +  5

# fontdict 可以使用 css 来设置字体样式
plt.title("测试", fontproperties=zhfont1, fontdict = font1)
 
# fontproperties 设置中文显示,fontsize 设置字体大小
plt.xlabel("x 轴", fontproperties=zhfont1)
plt.ylabel("y 轴", fontproperties=zhfont1)
plt.plot(x,y)
plt.show()

Posicionamento de títulos e tags

  • O método title() fornece um parâmetro loc para definir a posição de exibição do título, que pode ser definido como: 'esquerda', 'direita' e 'centro', e o valor padrão é 'centro'.
  • O método xlabel() fornece o parâmetro loc para definir a posição da exibição do eixo X, que pode ser definida como: 'esquerda', 'direita' e 'centro'. O valor padrão é 'centro'.
  • O método ylabel() fornece o parâmetro loc para definir a posição da exibição do eixo y, que pode ser definida como: 'inferior', 'superior' e 'centro'. O valor padrão é 'centro'.
# 实例 6
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
 
# fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径,size 参数设置字体大小
zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf", size=18)
font1 = {
    
    'color':'blue','size':20}
font2 = {
    
    'color':'darkred','size':15}
x = np.arange(1,11)
y =  2  * x +  5

# fontdict 可以使用 css 来设置字体样式
plt.title("测试", fontproperties=zhfont1, fontdict = font1, loc="left")
 
# fontproperties 设置中文显示,fontsize 设置字体大小
plt.xlabel("x 轴", fontproperties=zhfont1, loc="left")
plt.ylabel("y 轴", fontproperties=zhfont1, loc="top")
plt.plot(x,y)
plt.show()

A diferença entre ax.set_title() e plt.title() e df,plot(title='')

plt.XX e similares são desenhos funcionais, que são desenhados passando parâmetros de dados para os métodos estáticos da classe plt e chamando os métodos. fig,ax=plt.subplots() é programação de objetos. Aqui plt.subplots() retorna uma tupla, incluindo o objeto de figura (controlando o tamanho geral da figura) e o objeto de eixos (controlando desenho, coordenadas, etc.). Para realizar o desenho baseado em objeto, você deve primeiro instanciar a classe de figura e a classe de eixos por meio de plt.subplots(), que são fig e ax no código, depois ajustar o tamanho geral da imagem por meio de fig, desenhar gráficos por meio de ax, definir coordenadas, e desenho funcional. A maior vantagem é que é intuitivo, mas se você desenhar imagens um pouco complexas ou operar subimagens, não é tão bom quanto o desenho baseado em objeto. ax.set_title() é definir o título para o sub -picture ax. Quando há várias subimagens, você pode definir títulos diferentes por meio de ax. Seria mais problemático se você apenas chamasse plt.title() para dar títulos a vários subgráficos.

machado.set_title()

import  matplotlib .pyplot as plt
x=[1,2,3,4,5]
y=[3,6,7,9,2]
# 实例化两个子图(1,2)表示1行2列
fig,ax=plt.subplots(1,2)
ax[0].plot(x,y,label='trend')
ax[1].plot(x,y,color='cyan')
ax[0].set_title('title 1')
ax[1].set_title('title 2')

plt.título()

import  matplotlib .pyplot as plt
x=[1,2,3,4,5]
y=[3,6,7,9,2]
# fig,ax=plt.subplots(1,2)
plt.figure(1)
plt.subplot(121)# 12表示子图分布:一行2列;最后一个1表示第1个子图,从左往右
plt.plot(x,y,label='trend')
plt.title('title 1',fontsize=12,color='r') #r: red
plt.subplot(122)#第二个子图
plt.plot(x,y,c='cyan')
plt.title('title 2')

df,plot(título='')

O df do pandas vem com plot, que pode definir o tamanho da imagem, nome da imagem, etc.

#按照neighbourhood和room_type分组,计算每个值的个数和price的均值
neigh_roomtype=listings.groupby(['neighbourhood','room_type']).agg({
    
    'id':'size','price':'mean'})
#将ID改为number
neigh_roomtype=neigh_roomtype.rename(columns={
    
    'id':'number'})

#先对number计算统计可视化等
number_n_r=neigh_roomtype.unstack()['number']
number_n_r.plot(figsize=(12,5),title='图1:不同房屋类型在不同地区的数量')

pós-escrito

O que estamos aprendendo hoje são rótulos e títulos de eixos do Python Matplotlib. Você aprendeu? Um resumo do conteúdo de aprendizagem de hoje:

  1. Rótulos e títulos do eixo Matplotlib
  2. título
  3. Exibição gráfica chinesa
  4. Posicionamento de títulos e tags
  5. A diferença entre ax.set_title() e plt.title() e df,plot(title='')

Acho que você gosta

Origin blog.csdn.net/qq_54129105/article/details/132394068
Recomendado
Clasificación