Seaborn - Hình thẩm mỹ
Trực quan hóa dữ liệu là một bước và tiếp tục làm cho dữ liệu trực quan hóa dễ chịu hơn là một bước khác. Hình ảnh hóa đóng một vai trò quan trọng trong việc truyền đạt những hiểu biết định lượng cho khán giả để thu hút sự chú ý của họ.
Thẩm mỹ có nghĩa là một tập hợp các nguyên tắc liên quan đến bản chất và sự đánh giá cao vẻ đẹp, đặc biệt là trong nghệ thuật. Trực quan là một nghệ thuật biểu diễn dữ liệu theo cách hiệu quả và dễ dàng nhất có thể.
Thư viện Matplotlib hỗ trợ khả năng tùy biến cao, nhưng biết những cài đặt nào cần chỉnh sửa để đạt được một cốt truyện hấp dẫn và được mong đợi là điều người ta nên biết để sử dụng nó. Không giống như Matplotlib, Seaborn đi kèm với các chủ đề tùy chỉnh và giao diện cấp cao để tùy chỉnh và kiểm soát giao diện của các hình Matplotlib.
Thí dụ
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sinplot()
plt.show()
Đây là cách một âm mưu trông với Matplotlib mặc định -
Để thay đổi cùng một cốt truyện thành mặc định của Seaborn, hãy sử dụng set() chức năng -
Thí dụ
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set()
sinplot()
plt.show()
Đầu ra
Hai hình trên cho thấy sự khác biệt trong lô Matplotlib và Seaborn mặc định. Cách biểu diễn dữ liệu giống nhau, nhưng kiểu biểu diễn khác nhau ở cả hai.
Về cơ bản, Seaborn chia các tham số Matplotlib thành hai nhóm−
- Các kiểu âm mưu
- Quy mô lô đất
Kiểu dáng Seaborn
Giao diện để thao tác các kiểu là set_style(). Sử dụng chức năng này, bạn có thể đặt chủ đề của cốt truyện. Theo phiên bản cập nhật mới nhất, dưới đây là năm chủ đề có sẵn.
- Darkgrid
- Whitegrid
- Dark
- White
- Ticks
Hãy để chúng tôi thử áp dụng một chủ đề từ danh sách được đề cập ở trên. Chủ đề mặc định của cốt truyện sẽ làdarkgrid mà chúng ta đã thấy trong ví dụ trước.
Thí dụ
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("whitegrid")
sinplot()
plt.show()
Đầu ra
Sự khác biệt giữa hai ô trên là màu nền
Loại bỏ gai trục
Trong chủ đề màu trắng và dấu tích, chúng ta có thể loại bỏ các gai trục trên cùng và bên phải bằng cách sử dụng despine() chức năng.
Thí dụ
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sinplot()
sb.despine()
plt.show()
Đầu ra
Trong các ô thông thường, chúng tôi chỉ sử dụng trục trái và trục dưới cùng. Sử dụngdespine() , chúng ta có thể tránh các gai trục phải và trục trên cùng không cần thiết, không được hỗ trợ trong Matplotlib.
Ghi đè các phần tử
Nếu bạn muốn tùy chỉnh các kiểu Seaborn, bạn có thể chuyển một từ điển các tham số vào set_style() chức năng. Các thông số có sẵn được xem bằng cách sử dụngaxes_style() chức năng.
Thí dụ
import seaborn as sb
print sb.axes_style
Đầu ra
{'axes.axisbelow' : False,
'axes.edgecolor' : 'white',
'axes.facecolor' : '#EAEAF2',
'axes.grid' : True,
'axes.labelcolor' : '.15',
'axes.linewidth' : 0.0,
'figure.facecolor' : 'white',
'font.family' : [u'sans-serif'],
'font.sans-serif' : [u'Arial', u'Liberation
Sans', u'Bitstream Vera Sans', u'sans-serif'],
'grid.color' : 'white',
'grid.linestyle' : u'-',
'image.cmap' : u'Greys',
'legend.frameon' : False,
'legend.numpoints' : 1,
'legend.scatterpoints': 1,
'lines.solid_capstyle': u'round',
'text.color' : '.15',
'xtick.color' : '.15',
'xtick.direction' : u'out',
'xtick.major.size' : 0.0,
'xtick.minor.size' : 0.0,
'ytick.color' : '.15',
'ytick.direction' : u'out',
'ytick.major.size' : 0.0,
'ytick.minor.size' : 0.0}
Thay đổi các giá trị của bất kỳ tham số nào sẽ thay đổi kiểu âm mưu.
Thí dụ
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Đầu ra
Phần tử lô mở rộng
Chúng tôi cũng có quyền kiểm soát các yếu tố của cốt truyện và có thể kiểm soát quy mô của cốt truyện bằng cách sử dụng set_context()chức năng. Chúng tôi có bốn mẫu đặt trước cho các ngữ cảnh, dựa trên kích thước tương đối, các ngữ cảnh được đặt tên như sau
- Paper
- Notebook
- Talk
- Poster
Theo mặc định, ngữ cảnh được đặt thành sổ ghi chép; và đã được sử dụng trong các ô ở trên.
Thí dụ
import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
x = np.linspace(0, 14, 100)
for i in range(1, 5):
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()
Đầu ra
Kích thước đầu ra của ô thực tế có kích thước lớn hơn so với các ô trên.
Note - Do tỷ lệ hình ảnh trên trang web của chúng tôi, bạn có thể bỏ lỡ sự khác biệt thực tế trong các ô mẫu của chúng tôi.