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,所以无需特别记忆。