Đây là một loại câu hỏi tiếp theo cho bài đăng this, nơi màu sắc của các trục, ve và nhãn được thảo luận. Tôi hy vọng có thể mở một câu hỏi mới, mở rộng cho việc này.Thay đổi màu sắc của khung hình trong matplotlib
Thay đổi màu của khung hoàn chỉnh (ve và trục) xung quanh ô đôi (qua add_subplot
) với trục [ax1, ax2] dẫn đến nhiều mã. Đoạn này sẽ thay đổi màu sắc của khung của cốt truyện trên: (!)
ax1.spines['bottom'].set_color('green')
ax1.spines['top'].set_color('green')
ax1.spines['left'].set_color('green')
ax1.spines['right'].set_color('green')
for t in ax1.xaxis.get_ticklines(): t.set_color('green')
for t in ax1.yaxis.get_ticklines(): t.set_color('green')
for t in ax2.xaxis.get_ticklines(): t.set_color('green')
for t in ax2.yaxis.get_ticklines(): t.set_color('green')
Vì vậy, để thay đổi màu khung của hai lô với hai y trục mỗi, tôi sẽ cần 16 dòng mã .. . Đây là cách nó trông giống như:
Các phương pháp khác tôi đào lên cho đến nay:
matplotlib.rc: đã thảo luận here; thay đổi trên toàn cầu, chứ không phải cục bộ. Tôi muốn có một số lô khác trong các màu khác nhau. Xin vui lòng, không thảo luận về quá nhiều màu sắc trong âm mưu ... :-)
matplotlib.rc('axes',edgecolor='green')
đào ra những chiếc gai của trục, sau đó thay đổi nó: cũng đã thảo luận here; không thực sự tao nhã, tôi nghĩ vậy.
for child in ax.get_children(): if isinstance(child, matplotlib.spines.Spine): child.set_color('#dddddd')
Có một nhã cách ngưng tụ khối ở trên, một cái gì đó hơn "pythonic"?
Tôi đang sử dụng trăn 2.6.5 với matplotlib 0.99.1.1 trong ubuntu.
Đẹp nhất. Xin vui lòng bao gồm hai màu và tôi sẽ 'chấp nhận' câu trả lời của bạn. (ví dụ: 'cho rìu, màu sắc trong zip ([ax1, ax2, ax3, ax4], ['xanh', 'xanh lục', 'xanh', 'xanh dương']): plt.setp (ax.spines.values(), color = color); plt.setp ([ax.get_xticklines(), ax.get_yticklines()], color = color) ') – Boffin
@Boffin done :) – ianalis
trong dòng cuối cùng của bạn, tôi nghĩ bạn có nghĩa là' ax1 'chỉ là 'ax' – Joel