2015-11-04 17 views
5

Tôi đang mắc kẹt trên những gì có thể là một điều đơn giản. Tôi đang sử dụng bảng màu seaborn mặc định trong Matplotlib. Tôi muốn vẽ hai đường có cùng màu VÀ tôi muốn xác định màu đó. Tôi muốn sử dụng các màu sắc là một phần của bảng màu seaborn mặc định, tức là tôi muốn màu đỏ biển thay vì màu đỏ mặc định của Matplotlib.Matplotlib + Seaborn - hai dòng có cùng màu?

Dưới đây là đoạn mã của tôi:

import pylab as plot 
import seaborn 

t = np.arange(0.0, 2.0, 0.01) 
s = np.sin(2*np.pi*t) 
plt.plot(t, s, 'r') 
plt.plot(t, 2*s, 'r') 

Nếu tôi sử dụng đoạn mã trên, tôi nhận được màu đỏ mặc định Matplotlib của (như mong đợi). Có cách nào "dễ" để nói màu đỏ của seaborn không? Nếu tôi không xác định màu sắc, màu sắc sẽ chuyển qua chu kỳ màu mặc định của Seaborn. Cảm ơn!

Trả lời

7

Bạn có thể nhận được màu Seaborn mặc định bằng cách sử dụng seaborn.color_palette() (có một vài bảng màu khác nhau mà bạn có thể nhận được thông qua chức năng đó). Vì vậy, bạn có thể làm:

t = np.arange(0.0, 2.0, 0.01) 
s = np.sin(2*np.pi*t) 
plt.plot(t, s, c=seaborn.color_palette()[2]) 
plt.plot(t, 2*s, c=seaborn.color_palette()[2]) 

Bạn phải đi qua các mặc định Palette bản thân và làm việc ra mà giá trị tương ứng với đó màu sắc, không có tên hữu ích như 'đỏ' gắn liền với các giá trị RBG từ những gì tôi đã từng thấy.

+1

Đây chính xác là những gì tôi đang tìm kiếm. Cảm ơn nhiều! –

+0

Xem câu trả lời của tôi cho một cách tốt hơn để làm điều này trong các phiên bản sau này của seaborn. – mwaskom

7

Trong seaborn 0.6 hoặc mới hơn, bạn có thể gọi seaborn.set_color_codes() hoặc seaborn.set(color_codes=True)"r" sẽ được hiểu là màu đỏ biển mặc định.

+0

Đây là một lựa chọn tuyệt vời. Cám ơn vì đã chia sẻ! –

Các vấn đề liên quan