tôi đã tự hỏi điều tương tự. Đây là những gì tôi đã đưa ra để thay đổi màu sắc của phông chữ trong truyền thuyết. Tôi không hoàn toàn hài lòng với phương pháp này, vì nó có vẻ một chút vụng về, nhưng có vẻ như để có được công việc làm [Chỉnh sửa: xem dưới đây để biết một cách tốt hơn]:
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 Chỉnh sửa:
Thực ra, có cách tốt hơn. Bạn chỉ có thể lặp qua các dòng trong chú giải, điều này tránh được việc phải theo dõi các màu khi các đường được vẽ. Ít khó khăn hơn. Bây giờ, việc thay đổi màu sắc của đường thẳng về cơ bản là một lớp lót (không sao, nó thực sự là một lớp lót hai lớp). Dưới đây là ví dụ hoàn chỉnh:
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 Chỉnh sửa: Cuối cùng, nếu bạn thực sự làm muốn các văn bản mã màu thay của một dòng (như tựa đề), sau đó bạn có thể ngăn chặn các dòng trong truyền thuyết bằng cách sử dụng
leg = ax.legend(handlelength=0)