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