跳转至

Matplotlib & Seaborn

Matplotlib

Matplotlib 是 Python 中常用的一个绘图库,数据分析和数据可视化都需要用到。但是现在有GPT也不需要记住非常细节的语法,只需要搞清楚核心几个用法即可。

Matplotlib简单绘图

import matplotlib.pyplot as plt
# 红色虚线,带圆形标记
plt.plot(x, y, color='red', marker='o', linestyle='--')  
plt.title('Styled Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()

解决中文乱码

plt.rcParams['font.sans-serif'] = ['simHei']
plt.rcParams['axes.unicode_minus'] = False

还有一种方法是下载字体,指定路径,其实也很简单,但上述方法更简单

指定字体

from matplotlib.font_manager import FontProperties
font = FontProperties(fname='/path/to/font.ttf')

多图绘制

fig, axs = plt.subplots(1, 3, figsize=(15, 5))  # 1 行,3 列,总共 3 个子图

axs[0].plot(x, y1, label='sin(x)', color='blue')
axs[0].set_title('Sine Wave')
axs[0].legend()
# ......

fig.suptitle('Trigonometric Functions') # 添加整体标题
plt.tight_layout() # 调整子图之间的间距
plt.show()

多次绘制

# 一个plot上可以绘制多个对象
plt.plot(x, y, label='x^2')
plt.plot(x, y2, label='x^3')
plt.title('Multiple Series')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.legend()  

# 有时需要,清空画布
plt.clf()

常见图像绘制

# 常见图形代码
plt.plot(x, y) # 折线图
plt.scatter(x, y) # 散点图
plt.bar(x, y) # 柱状图

data = np.random.normal(0, 1, size=1000)
plt.hist(data, bins=6) # 直方图
plt.boxplot(data) # 箱型图

Seaborn

Seaborn 基于 Matplotlib 核心库进行了更高阶的 API 封装,可以让你轻松地画出更漂亮的图形。Seaborn 的漂亮主要体现在配色更加舒服、以及图形元素的样式更加细腻。

参考链接:Seaborn 数据可视化基础教程

Seaborn简单绘图


import seaborn as sns

# 声明使用 Seaborn 样式
sns.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=False, rc=None)
# 上面这行等同于
sns.set()

plt.bar(x, y_bar)
plt.plot(x, y_line, '-o', color='y')

基础图形

Seaborn 的绘图方法大致分类 6 类,分别是:关联图、类别图、分布图、回归图、矩阵图和组合图。而这 6 大类下面又包含不同数量的绘图函数。

  • 关联图用于展示变量之间的关系,通常用于查看两个或多个变量之间如何相互影响。
  • 类别图用于展示一个或多个类别变量的分布,可以比较不同类别之间的统计数据。
  • 分布图用于查看单变量或双变量分布,帮助理解数据的分布形态。
  • 回归图用于分析两个或多个变量之间的关系,并拟合不同类型的回归模型。
  • 矩阵图用于展示数据矩阵(例如相关系数矩阵)和多变量之间的复杂关系。
  • 组合图是 Seaborn 中用于创建包含多个轴子图的复杂布局的函数。

具体的使用可以问GPT,所以无需特别记忆。