Matplotlib+Seaborn¶
Matplotlib 是 Python 中一种第三方可视化绘图库,Matplotlib是 MATLAB+Plot+Library 的缩写,其绘图风格与 MATLAB 类似。Seaborn 在 Matplotlib 的基础上,为图形样式和颜色设置提供了现代化的设置为常用的统计图形定义了许多简单的高级函数,并与 Pandas.DataFrame 的功能有机结合。
版本¶
[1]:
import matplotlib
import seaborn
matplotlib.__version__,seaborn.__version__
[1]:
('3.1.1', '0.9.0')
别名¶
遵循传统,使用别名mpl
导入 Matplotlib;sns
导入 Seaborn;plt
导入 matplotlib.pyplot,这是 matplotlib 中最常用的绘图接口。
[2]:
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
加入%matplotlib inline
会在 Notebook 中启动静态图形;加入sns.set()
使图像拥有更好的视觉效果。
Figure¶
在 Matplotlib 中,图像为一个 figure
对象,在 Figure
对象中可以包含一个或多个 Axes
对象。每个Axes(ax)
对象都是一个拥有自己坐标系统的绘图区域,所属关系如下图所示:
其中,Title
为图像标题,Axis
为坐标轴, Label
为坐标轴标注,Tick
为刻度线,Tick Label
为刻度注释。
[3]:
# 生成数据
import numpy as np
x = np.linspace(1,10,50)
y = np.sin(x)
# 创建一个空的 figure 对象
fig = plt.figure()
# 添加标签
plt.xlabel('x')
plt.ylabel('y')
plt.title('y = sin(x)')
# 绘图
plt.plot(x, y)
plt.show()

图像导出¶
在 Matplotlib 中,可以通过 savefig()
命令将图像保存为文件:
[4]:
fig.savefig('sin(x).png')
在 Notebook 中, 可以通过 IPython.display.Image
命令导入图像:
[5]:
from IPython.display import Image
Image('sin(x).png')
[5]:

常用图像绘制¶
线形图¶
可通过 plt.plot()
方法绘制线性图:
[6]:
x = np.linspace(1,10,30)
y = np.sin(x)
plt.plot(x,y)
[6]:
[<matplotlib.lines.Line2D at 0x2ba72430080>]

散点图¶
可通过 plt.plot()
和 plt.scatter)
方法绘制散点图:
[7]:
plt.plot(x, y, 'o')
#plt.scatter(x, y, marker='o')
[7]:
[<matplotlib.lines.Line2D at 0x2ba7248ba90>]

柱形图¶
可通过 plt.bar()
方法绘制柱形图:
[8]:
x = list('ABCDE')
y = [2,4,6,8,10]
plt.bar(x,y)
[8]:
<BarContainer object of 5 artists>

条形图¶
可通过 plt.barh() 方法绘制条形图:
[9]:
x = list('ABCDE')
y = [2,4,6,8,10]
plt.barh(x,y)
[9]:
<BarContainer object of 5 artists>

Seaborn 高级方法¶
Seaborn 提供了许多高级函数,便于进行数据分析工作。
sns.pairplot()¶
通过 sns.pairplot()
方法,能绘制出数据集中的成对关系。
[10]:
# 导入 Iris 数据集
import pandas as pd
iris = pd.read_csv('./data/iris.csv')
sns.pairplot(iris)
[10]:
<seaborn.axisgrid.PairGrid at 0x2ba72598a20>

在此基础上,可以利用 hue
变量区分种类:
[11]:
sns.pairplot(iris ,hue ='species')
[11]:
<seaborn.axisgrid.PairGrid at 0x2ba72dcb780>

想进一步了解 Seaborn 可以点击这里,访问 Seaborn 官网