📜  如何在 Matplotlib 中更改图例字体大小?

📅  最后修改于: 2022-05-13 01:54:29.250000             🧑  作者: Mango

如何在 Matplotlib 中更改图例字体大小?

Matplotlib 是一个用于在Python中创建交互式可视化的库。 matplotlib 中的函数使它像 MATLAB 软件一样工作。 matplotlib 中的 legend() 方法描述了图中的元素。在本文中,我们将在 Matplotlib 中更改图例字体大小。

句法:

matplotlib.pyplot.legend(*args, **kwargs)

它可以通过不同的方式完成:

  • 使用字体大小作为参数。
  • 使用 prop 关键字更改图例中的字体大小。
  • 使用 rcParams 方法。

方法一:

示例 1 和示例 2 清楚地区分了默认字体大小和图例中更改的字体大小之间的更改。

示例 1:图例中文本的默认字体大小

Python3
import matplotlib.pyplot as plt
import numpy as np
  
plt.figure(figsize = (8, 4))
  
x = ['Arjun', 'Bharath', 'Raju', 'Seeta', 'Ram']
y = [5, 7, 8, 4, 6]
  
plt.bar(x, y, color = 'g')
  
plt.xlabel('Students', fontsize = 18)
plt.ylabel('Marks', fontsize = 18)
  
#Default fontsize of text using legend
plt.legend(['Marks scored'])
  
plt.show()


Python3
import matplotlib.pyplot as plt
import numpy as np
  
plt.figure(figsize = (8, 4))
  
x = ['Arjun', 'Bharath', 'Raju', 'Seeta', 'Ram']
  
y = [5, 7, 8, 4, 6]
  
plt.bar(x, y, color = 'g')
  
plt.xlabel('Students', fontsize = 18)
plt.ylabel('Marks', fontsize = 18)
  
#Changing text fontsize in legend 
plt.legend(['Marks scored'], fontsize = 17)
  
plt.show()


Python3
import matplotlib.pyplot as plt
  
plt.figure(figsize = (8 , 5))
  
plt.plot([1, 2, 4, 8, 30, 1])
plt.plot([1, 6, 13, 20, 38, 1])
plt.plot([1, 4, 8, 14, 20, 1])
plt.plot([1, 3, 4, 5, 10, 1])
  
#Using prop keyword in legend to change font size
plt.legend(['blue', 'orange', 'green', 'red'], 
           prop = {'size' : 20}, 
           loc = 'upper left', shadow = True,
           facecolor = 'yellow')
  
plt.show()


Python3
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
  
x = np.linspace(0, (2*np.pi), endpoint = True)
  
xlim(x.min(), x.max())
  
xticks([0, np.pi/2, np.pi, (3*np.pi/2), (2*np.pi)], 
       [r'$0$', r'$+\pi/2$', r'$+\pi$', r'$3/2\pi$', r'$2\pi$'])
  
ylim(-1, 0, 1)
yticks([-1, 0, +1], 
       [r'$-1$', r'$0$', r'$+1$'])
  
plt.plot(x, np.sin(x), label = "sin(x)")
plt.plot(x, np.cos(x), label = "cos(x)")
  
plt.title('Trignometric Functions', fontsize = 22)
  
plt.xlabel('Angles', fontsize = 18)
plt.ylabel('Values', fontsize = 18)
  
plt.legend(loc = 'upper center')
  
plt.rc('legend', fontsize = 16)
  
#plt.grid()
plt.tight_layout()
  
plt.show()


输出:

示例 2:更改图例中文本的字体大小

蟒蛇3

import matplotlib.pyplot as plt
import numpy as np
  
plt.figure(figsize = (8, 4))
  
x = ['Arjun', 'Bharath', 'Raju', 'Seeta', 'Ram']
  
y = [5, 7, 8, 4, 6]
  
plt.bar(x, y, color = 'g')
  
plt.xlabel('Students', fontsize = 18)
plt.ylabel('Marks', fontsize = 18)
  
#Changing text fontsize in legend 
plt.legend(['Marks scored'], fontsize = 17)
  
plt.show()

输出:

上面的示例更改了图例中项目的字体大小。字体大小参数可以具有整数或浮点值。它还接受字符串大小,如:“xx-small”、“x-small”、“small”、“medium”、“large”、“x-large”、“xx-large”。

方法二: prop关键字用于改变字体大小属性。它在 matplotlib 中用作:

示例 3:使用 prop 关键字更改图例中的字体大小。

蟒蛇3

import matplotlib.pyplot as plt
  
plt.figure(figsize = (8 , 5))
  
plt.plot([1, 2, 4, 8, 30, 1])
plt.plot([1, 6, 13, 20, 38, 1])
plt.plot([1, 4, 8, 14, 20, 1])
plt.plot([1, 3, 4, 5, 10, 1])
  
#Using prop keyword in legend to change font size
plt.legend(['blue', 'orange', 'green', 'red'], 
           prop = {'size' : 20}, 
           loc = 'upper left', shadow = True,
           facecolor = 'yellow')
  
plt.show()

输出:

方法三:

matplotlib.rcparams 是一个类似字典的变量,它具有自定义默认参数的所有配置设置。 matplotlib.rc() 命令用于使用关键字参数更改多个设置。

句法:

例如,

matplotlib.pyplot.rc ('lines', linewidth = 5, color = 'g')

示例 4:

蟒蛇3

import matplotlib.pyplot as plt
import numpy as np
from pylab import *
  
x = np.linspace(0, (2*np.pi), endpoint = True)
  
xlim(x.min(), x.max())
  
xticks([0, np.pi/2, np.pi, (3*np.pi/2), (2*np.pi)], 
       [r'$0$', r'$+\pi/2$', r'$+\pi$', r'$3/2\pi$', r'$2\pi$'])
  
ylim(-1, 0, 1)
yticks([-1, 0, +1], 
       [r'$-1$', r'$0$', r'$+1$'])
  
plt.plot(x, np.sin(x), label = "sin(x)")
plt.plot(x, np.cos(x), label = "cos(x)")
  
plt.title('Trignometric Functions', fontsize = 22)
  
plt.xlabel('Angles', fontsize = 18)
plt.ylabel('Values', fontsize = 18)
  
plt.legend(loc = 'upper center')
  
plt.rc('legend', fontsize = 16)
  
#plt.grid()
plt.tight_layout()
  
plt.show()

输出: