python 设置图例的大小_如何调整matplotlib图例框的大小?

要控制图例中的填充(有效地使图例框变大),请使用borderpadkwarg。

例如,以下是默认值:import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 100)

fig, ax = plt.subplots()

for i in range(1, 6):

ax.plot(x, i*x + x, label='$y={i}x + {i}$'.format(i=i))

ax.legend(loc='upper left')

plt.show()

如果我们使用borderpad=2更改内部填充,则会使整个图例框变大(单位是字体大小的倍数,类似于em):import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 100)

fig, ax = plt.subplots()

for i in range(1, 6):

ax.plot(x, i*x + x, label='$y={i}x + {i}$'.format(i=i))

ax.legend(loc='upper left', borderpad=2)

plt.show()

或者,您可能需要更改项目之间的间距。使用labelspacing来控制:import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 100)

fig, ax = plt.subplots()

for i in range(1, 6):

ax.plot(x, i*x + x, label='$y={i}x + {i}$'.format(i=i))

ax.legend(loc='upper left', labelspacing=2)

plt.show()

然而,在大多数情况下,同时调整labelspacing和borderpad最有意义:import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 100)

fig, ax = plt.subplots()

for i in range(1, 6):

ax.plot(x, i*x + x, label='$y={i}x + {i}$'.format(i=i))

ax.legend(loc='upper left', borderpad=1.5, labelspacing=1.5)

plt.show()

另一方面,如果您有非常大的标记,您可能希望使图例中显示的行的长度更大。例如,默认值可能如下所示:import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 5)

fig, ax = plt.subplots()

for i in range(1, 6):

ax.plot(x, i*x + x, marker='o', markersize=20,

label='$y={i}x + {i}$'.format(i=i))

ax.legend(loc='upper left')

plt.show()

如果我们改变handlelength,我们将在图例中得到更长的行,这看起来更真实一些。(我还在这里调整borderpad和labelspacing以提供更多的空间。)import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 5)

fig, ax = plt.subplots()

for i in range(1, 6):

ax.plot(x, i*x + x, marker='o', markersize=20,

label='$y={i}x + {i}$'.format(i=i))

ax.legend(loc='upper left', handlelength=5, borderpad=1.2, labelspacing=1.2)

plt.show()

在文档中,您可能还需要探索其他一些选项:Padding and spacing between various elements use following

keywords parameters. These values are measure in font-size

units. E.g., a fontsize of 10 points and a handlelength=5

implies a handlelength of 50 points. Values from rcParams

will be used if None.

=====================================================================

Keyword | Description

=====================================================================

borderpad the fractional whitespace inside the legend border

labelspacing the vertical space between the legend entries

handlelength the length of the legend handles

handletextpad the pad between the legend handle and text

borderaxespad the pad between the axes and legend border

columnspacing the spacing between columns

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值