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.