使用 matplotlib 建立一个图表的概念是组装它提供的基础元件,像是图表类型、图例或者标签等元件。 Seaborn 套件是以 matplotlib 为基础建构的高阶绘图套件,让使用者更加轻松地建立图表,我们可以将它视为是 matplotlib 的加强
我们今天试着使用看看Seaborn套件来划一些基本的图形,包括:
直方图(Histogram)
散布图(Scatter plot)
线图(Line plot)
长条图(Bar plot)
盒须图(Box plot)
Seaborn套件在我们的开发环境没有安装,但我们可以透过conda指令在终端机安装。
conda install -c anaconda seaborn=0.7.1
我们的开发环境是Jupyter Notebook,这个指令可以让图形不会在新视窗呈现。
%matplotlib inline
直方图
使用seaborn套件的distplot()方法。
%matplotlib inline
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
sns.distplot(normal_samples)
预设会附上kernel density estimate(KDE)曲线。
散布图(Scatter plot)
使用seaborn套件的joinplot()方法。
%matplotlib inline
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
speed = [4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 22, 23, 24, 24, 24, 24, 25]
dist = [2, 10, 4, 22, 16, 10, 18, 26, 34, 17, 28, 14, 20, 24, 28, 26, 34, 34, 46, 26, 36, 60, 80, 20, 26, 54, 32, 40, 32, 40, 50, 42, 56, 76, 84, 36, 46, 68, 32, 48, 52, 56, 64, 66, 54, 70, 92, 93, 120, 85]
cars_df = pd.DataFrame(
{"speed": speed,
"dist": dist
}
)
sns.jointplot(x = "speed", y = "dist", data = cars_df)
预设会附上X轴变数与Y轴变数的直方图。
线图(Line plot)
使用seaborn套件的factorplot()方法。
%matplotlib inline
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
speed = [4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 22, 23, 24, 24, 24, 24, 25]
dist = [2, 10, 4, 22, 16, 10, 18, 26, 34, 17, 28, 14, 20, 24, 28, 26, 34, 34, 46, 26, 36, 60, 80, 20, 26, 54, 32, 40, 32, 40, 50, 42, 56, 76, 84, 36, 46, 68, 32, 48, 52, 56, 64, 66, 54, 70, 92, 93, 120, 85]
cars_df = pd.DataFrame(
{"speed": speed,
"dist": dist
}
)
sns.factorplot(data = cars_df, x="speed", y="dist", ci = None)
长条图(Bar plot)
使用seaborn套件的countplot()方法。
%matplotlib inline
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
cyl = [6 ,6 ,4 ,6 ,8 ,6 ,8 ,4 ,4 ,6 ,6 ,8 ,8 ,8 ,8 ,8 ,8 ,4 ,4 ,4 ,4 ,8 ,8 ,8 ,8 ,4 ,4 ,4 ,8 ,6 ,8 ,4]
cyl_df = pd.DataFrame({"cyl": cyl})
sns.countplot(x = "cyl", data=cyl_df)
盒须图(Box plot)
使用seaborn套件的boxplot()方法。
小结
第十九天我们练习使用Python的视觉化套件Seaborn绘制基本的图形
领取专属 10元无门槛券
私享最新 技术干货