私は同じことを考えていました。これが、凡例のフォントの色を変更するために私が思いついたものです。この方法は少し不器用に見えるので、私は完全には満足していませんが、仕事は完了しているようです[編集:より良い方法については以下を参照してください]:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
colors = []
for i in xrange(5):
line, = ax.plot(x, i * x, label='$y = %ix$' % i)
colors.append(plt.getp(line,'color'))
leg = ax.legend()
for color,text in zip(colors,leg.get_texts()):
text.set_color(color)
plt.show()

2016年編集:
実際には、もっと良い方法があります。凡例の線を繰り返すだけで、線がプロットされるときに色を追跡する必要がなくなります。はるかに不格好ではありません。さて、線の色を変更することは基本的に1つのライナーです(わかりました、それは実際には2つのライナーです)。完全な例は次のとおりです。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
for i in xrange(5):
ax.plot(x, i*x, label='$y = %ix$'%i)
leg = ax.legend()
# change the font colors to match the line colors:
for line,text in zip(leg.get_lines(), leg.get_texts()):
text.set_color(line.get_color())
plt.show()
2017編集:最後に、(タイトルが示すように)線の代わりに色分けされたテキストが本当に必要な場合は、次を使用して凡例の線を抑制することができます
leg = ax.legend(handlelength=0)