前言
Seaborn其實是在matplotlib的基礎上進行了更高級的API封裝,從而使得作圖更加容易,並且更加炫酷。
demo
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
import seaborn as sns
x = np.linspace(0, 14, 100)
y1 = np.sin(x)
y2 = np.sin(x+2) * 1.25
style = ['darkgrid', 'dark', 'white', 'whitegrid', 'ticks']
# 1. axes_style and set_style
sns.set_style(style[0])
#print( sns.axes_style() )
''' 可以設置一些 顯示 細節
{'xtick.color': '.15',
'font.family': ['sans-serif'],
'lines.solid_capstyle': 'round',
'ytick.left': False,
'axes.axisbelow': True,
'font.sans-serif': ['Arial', 'DejaVu Sans', 'Liberation Sans', 'Bitstream Vera Sans', 'sans-serif'],
'axes.spines.left': True,
'image.cmap': 'rocket',
'grid.color': 'white',
'axes.edgecolor': 'white',
'text.color': '.15',
'axes.grid': True,
'xtick.top': False,
'xtick.direction': 'out',
'patch.edgecolor': 'w',
'axes.spines.bottom': True,
'figure.facecolor': 'white',
'axes.spines.right': True,
'axes.spines.top': True,
'grid.linestyle': '-',
'ytick.color': '.15',
'axes.facecolor': '#EAEAF2',
'patch.force_edgecolor': True,
'ytick.right': False,
'axes.labelcolor': '.15',
'xtick.bottom': False,
'ytick.direction': 'out'}
'''
# 使用方法如下
sns.set_style(style[0], {'grid.color': 'red',})
# 作爲一個字典 傳入,顯示的背景網格就是紅色的
sns.set() # 可以清空所有樣式
sns.lineplot(x, y1)
sns.lineplot(x, y2)
plt.show() # 圖1
# 2. plotting_context() and set_context()
context = ['paper', 'notebook', 'talk', 'poster']
sns.set_context(context[0], rc = {'grid.linewidth': 3.0}) # 設置整個表的風格
# 同樣,可以使用 sns.set() 進行樣式的取消
sns.lineplot(x, y1)
sns.lineplot(x, y2)
plt.show() # 圖2
# 可以看出,進入seaborn之後,使用plt也可以輸出和seaborn一樣的效果
plt.plot(x, y1)
plt.show() # 圖3
畫圖如下:
圖1:
圖2:
圖3:
可以看到seaborn的畫圖操作成爲簡單,並且更爲美觀。