【小睿的ML之路】Seaborn风格细节设置
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
sns.set_style("whitegrid") # 设置Seaborn默认样式
# 生成随机数据
data = np.random.normal(size=(20,6)) + np.arange(6)/2
print(data)
[[-5.46439599e-01 -1.24698492e+00 1.78233049e+00 5.19146198e-01
3.05322231e+00 3.87177028e+00]
[-1.31831020e+00 3.97896682e-01 1.43300384e+00 2.67360377e+00
3.22782244e+00 8.80328060e-01]
[-7.47859533e-01 -3.94862649e-01 1.31269969e+00 2.75391045e+00
1.38233095e+00 2.88392887e+00]
[-1.02238507e+00 4.89035906e-01 2.16909687e+00 2.11592610e+00
1.96070041e+00 1.46308582e+00]
[ 8.47933576e-01 1.88671289e-01 1.47579692e+00 1.12933860e+00
3.44336001e+00 3.12024773e+00]
[ 1.15201813e+00 -1.14954550e+00 2.08015192e+00 2.82526580e-01
2.58403480e+00 1.48635598e+00]
[ 2.23049282e-01 2.31496832e+00 8.89974282e-01 2.32855350e+00
2.69471154e+00 2.26849168e+00]
[ 8.21390550e-01 -1.82994963e-01 1.41640751e+00 1.60452892e+00
1.91936472e+00 -6.85477792e-01]
[ 6.54260306e-01 5.78832861e-01 4.12279224e-01 9.16784787e-01
2.30068143e+00 1.61471998e+00]
[-8.41233276e-01 -6.63528026e-01 1.05766661e+00 2.38320292e+00
3.11826598e+00 1.88724351e+00]
[ 6.91272312e-01 6.64884954e-01 1.63449998e+00 2.05939665e+00
7.60944412e-01 1.88914506e+00]
[ 4.32562833e-01 1.11174469e+00 1.90496166e-01 4.36871728e+00
1.39737521e+00 1.70442280e+00]
[ 6.80295339e-01 -1.22974230e-03 1.14647137e+00 2.76618083e+00
2.21841688e+00 2.16630619e+00]
[-2.12288645e+00 1.46001699e+00 2.26888012e+00 2.47165902e+00
-3.46708717e-01 5.00232042e+00]
[ 4.26367790e-01 5.70002339e-01 2.54030610e+00 1.86653843e+00
5.77669764e-01 3.32269187e+00]
[-2.47090025e+00 3.39792804e-01 4.78462454e-01 2.25596048e+00
2.45924520e+00 2.93096834e+00]
[-2.57907083e-01 2.81525009e-02 1.21269356e+00 2.78611267e+00
1.36681450e+00 2.49482261e+00]
[ 2.94493362e-01 -7.14256277e-01 1.16416619e+00 3.66511884e+00
1.11155570e+00 2.56529996e+00]
[-1.43889136e+00 3.09609913e+00 5.58608643e-02 1.53645507e+00
2.19300809e+00 7.96699026e-01]
[ 1.49769951e+00 -8.54313392e-01 -1.65242446e+00 2.66162843e+00
2.21905049e+00 2.54737984e+00]]
# 绘制小提琴图
sns.violinplot(data)
sns.despine(offset=30,left=True)
plt.show()
def sinplot(flip=1): # 调用函数,flip参数可以控制曲线的翻转
x = np.linspace(0,14,100) #在0-14上找到100个点
for i in range(1,7):
plt.plot(x, np.sin(x+i *.5) * (7-i) * flip)
with sns.axes_style('darkgrid'):
plt.subplot(2,1,1)
sinplot()
plt.subplot(2,1,2)
sinplot(-1)
这段代码定义了一个名为 sinplot
的函数,该函数用于生成正弦曲线图。然后,在不同的子图中调用 sinplot
函数,可以通过 flip
参数控制曲线的翻转效果。
解释和运行代码的步骤如下:
-
定义了一个名为
sinplot
的函数,可以通过flip
参数控制正弦曲线的翻转方向。 -
使用
sns.axes_style('darkgrid')
设置 Seaborn 的样式为 "darkgrid",这样图形的背景将呈现深色网格。 -
在一个 2x1 的子图布局中,调用
sinplot()
函数生成正弦曲线图,并将曲线翻转。 -
在第二个子图中再次调用
sinplot()
函数,翻转曲线方向。
这段代码生成了一个 2x1 的子图布局,分别展示了正弦曲线和翻转后的正弦曲线。