Seaborn - รูปงาม

การแสดงภาพข้อมูลเป็นขั้นตอนหนึ่งและการทำให้ข้อมูลที่แสดงภาพเป็นที่ชื่นชอบมากขึ้นเป็นอีกขั้นหนึ่ง การแสดงภาพมีบทบาทสำคัญในการสื่อสารข้อมูลเชิงลึกเชิงปริมาณไปยังผู้ชมเพื่อดึงดูดความสนใจของพวกเขา

สุนทรียศาสตร์หมายถึงชุดของหลักการที่เกี่ยวข้องกับธรรมชาติและการชื่นชมความงามโดยเฉพาะอย่างยิ่งในงานศิลปะ การแสดงภาพเป็นศิลปะในการนำเสนอข้อมูลด้วยวิธีที่มีประสิทธิภาพและง่ายที่สุด

ไลบรารี Matplotlib สนับสนุนการปรับแต่งอย่างมาก แต่การรู้ว่าควรปรับแต่งการตั้งค่าใดเพื่อให้ได้พล็อตที่น่าสนใจและคาดหวังเป็นสิ่งที่ควรทราบเพื่อใช้ประโยชน์จากมัน ซึ่งแตกต่างจาก Matplotlib Seaborn มาพร้อมกับธีมที่กำหนดเองและอินเทอร์เฟซระดับสูงสำหรับการปรับแต่งและควบคุมรูปลักษณ์ของตัวเลข Matplotlib

ตัวอย่าง

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()

นี่คือลักษณะของพล็อตที่มีค่าเริ่มต้น Matplotlib -

หากต้องการเปลี่ยนพล็อตเดียวกันเป็นค่าเริ่มต้นของ Seaborn ให้ใช้ไฟล์ set() ฟังก์ชัน -

ตัวอย่าง

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()

เอาต์พุต

ตัวเลขสองตัวข้างต้นแสดงความแตกต่างในแผนเริ่มต้นของ Matplotlib และ Seaborn การแสดงข้อมูลเหมือนกัน แต่รูปแบบการเป็นตัวแทนจะแตกต่างกันไปทั้งสองอย่าง

โดยพื้นฐานแล้ว Seaborn จะแยกพารามิเตอร์ Matplotlib ออกเป็นสองกลุ่ม

  • รูปแบบพล็อต
  • พล็อตมาตราส่วน

รูปแบบของ Seaborn

อินเทอร์เฟซสำหรับการจัดการสไตล์คือ set_style(). การใช้ฟังก์ชันนี้คุณสามารถกำหนดธีมของพล็อตได้ ตามเวอร์ชันอัปเดตล่าสุดด้านล่างนี้คือห้าธีมที่มีให้

  • Darkgrid
  • Whitegrid
  • Dark
  • White
  • Ticks

ให้เราลองใช้ชุดรูปแบบจากรายการดังกล่าวข้างต้น ธีมเริ่มต้นของพล็อตจะเป็นdarkgrid ซึ่งเราได้เห็นในตัวอย่างก่อนหน้านี้

ตัวอย่าง

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()

เอาต์พุต

ความแตกต่างระหว่างสองแปลงข้างต้นคือสีพื้นหลัง

การถอดกระดูกสันหลังของแกน

ในธีมสีขาวและขีดเราสามารถลบแกนด้านบนและด้านขวาได้โดยใช้ despine() ฟังก์ชัน

ตัวอย่าง

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()

เอาต์พุต

ในแปลงปกติเราใช้แกนซ้ายและแกนล่างเท่านั้น ใช้despine() ฟังก์ชันเราสามารถหลีกเลี่ยงกระดูกสันหลังด้านขวาและด้านบนที่ไม่จำเป็นซึ่งไม่รองรับใน Matplotlib

การลบล้างองค์ประกอบ

หากคุณต้องการปรับแต่งสไตล์ Seaborn คุณสามารถส่งพจนานุกรมพารามิเตอร์ไปยังไฟล์ set_style() ฟังก์ชัน พารามิเตอร์ที่มีให้ดูโดยใช้axes_style() ฟังก์ชัน

ตัวอย่าง

import seaborn as sb
print sb.axes_style

เอาต์พุต

{'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}

การแก้ไขค่าของพารามิเตอร์ใด ๆ จะเปลี่ยนรูปแบบการลงจุด

ตัวอย่าง

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()

เอาต์พุต

องค์ประกอบแผนภาพมาตราส่วน

นอกจากนี้เรายังมีการควบคุมองค์ประกอบของพล็อตและสามารถควบคุมขนาดของพล็อตโดยใช้ set_context()ฟังก์ชัน เรามีเทมเพลตที่ตั้งไว้ล่วงหน้าสี่แบบสำหรับบริบทตามขนาดสัมพัทธ์บริบทมีชื่อดังนี้

  • Paper
  • Notebook
  • Talk
  • Poster

โดยค่าเริ่มต้นบริบทจะถูกตั้งค่าเป็นสมุดบันทึก และถูกใช้ในแปลงข้างต้น

ตัวอย่าง

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()

เอาต์พุต

ขนาดผลผลิตของแปลงจริงมีขนาดใหญ่กว่าเมื่อเทียบกับแปลงข้างต้น

Note - เนื่องจากการปรับขนาดภาพบนหน้าเว็บของเราคุณอาจพลาดความแตกต่างที่แท้จริงในตัวอย่างของเรา