Legendas (Espaçamentos)
Espaçamento dos labels em relação as borda
Para alterar o espaço entre a legenda e a sua borda, basta alterar o valor do parâmetro borderpad, passando um número (float ou int), sendo que o valor padrão é 0.4.
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
leg = plt.legend(ncol=2, title="Animais", title_fontsize='xx-large', borderpad=2)
leg._legend_box.align = "left"
plt.show()
Figura 1 - Caixa da legenda com espaçamento dos labels em relação as bordas.

Espaçamento entre o marcador e o label da legenda
Para alterar o espaço entre o marcador e o label da sua respectiva legenda, basta alterar o valor do parâmetro handletextpad, passando um número (float ou int), onde o padrão é 0.8.
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
leg = plt.legend(ncol=2, title="Animais", title_fontsize='xx-large', borderpad=2, labelspacing=2, handletextpad=5)
leg._legend_box.align = "left"
plt.show()
Figura 2 - Caixa da legenda com espaçamento dos labels em relação aos marcadores.

Espaço entre as colunas da legenda
Para alterar o espaço entre duas colunas na legenda, basta alterar o valor do parâmetro columnspacing, passando um número (float ou int), onde o padrão é 2.0.
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
leg = plt.legend(ncol=2, title="Animais", title_fontsize='xx-large', columnspacing=5)
leg._legend_box.align = "left"
plt.show()
Figura 3 - Caixa da legenda com espaçamento entre as colunas da legenda.

Espaçamento entre a legenda e o eixo do gráfico
Para alterar o espaço entre a legenda e o eixo do gráfico, basta alterar o valor do parâmetro borderaxespad, passando um número (float ou int), onde o valor padrão é 0.5.
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
leg = plt.legend(ncol=2, title="Animais", title_fontsize='xx-large', borderaxespad=2)
leg._legend_box.align = "left"
plt.show()
Figura 4 - Caixa da legenda com espaçamento entre a legenda e o eixo do gráfico.
