matplotlib
和 seaborn
能绘制的几乎所有图形类型的完整分类清单(近100种),涵盖基础统计图、分布图、多变量图、图像与空间图、极坐标图、图像处理、聚类与降维可视化等内容,适用于科研、数据科学、医学影像等多种场景。
✅ 一、基础统计图(Basic Statistical Plots)
图类型 | 描述 | Seaborn | Matplotlib |
---|
折线图 | 显示趋势变化,例如时间序列 | lineplot() | plot() |
散点图 | 变量之间的关系 | scatterplot() | scatter() |
条形图(Bar) | 类别的数量比较或聚合统计 | barplot() | bar() |
水平条形图 | 横向类别条形图 | barplot(orient='h') | barh() |
直方图 | 单变量分布的频数图 | histplot() | hist() |
饼图 | 类别所占比例 | ❌ | pie() |
点图 | 类似条形图,但以点表示均值 | pointplot() | plot() (自定义) |
✅ 二、分布图(Distribution Plots)
图类型 | 描述 | Seaborn |
---|
直方图 | 变量的分布 | histplot() / displot() |
核密度估计(KDE) | 平滑分布曲线 | kdeplot() |
经验分布图(ECDF) | 累积分布函数曲线 | ecdfplot() |
Rug plot | 边缘分布的标记 | rugplot() |
箱型图 | 分位数与离群点展示 | boxplot() |
Boxen图 | 类似箱型图,适合大样本 | boxenplot() |
小提琴图 | 箱型图 + KDE | violinplot() |
分组分布图 | 分布图分组展示 | displot(hue=...) |
✅ 三、多变量关系图(Multi-variate Plots)
图类型 | 描述 | Seaborn |
---|
Pair plot(成对关系图) | 多变量之间两两关系的散点图和分布图 | pairplot() |
Joint plot(联合图) | 主变量间的散点图 + 边缘直方图/KDE图 | jointplot() |
Swarm plot | 类别下变量的分布(无重叠) | swarmplot() |
Strip plot | 类别下变量的分布(可重叠) | stripplot() |
Catplot(总览接口) | 类别变量的统一作图接口,支持 bar/violin/swarm 等 | catplot() |
Count plot | 类别频数统计图 | countplot() |
✅ 四、回归图与拟合(Regression Visualization)
图类型 | 描述 | Seaborn |
---|
回归拟合图 | 带拟合线的散点图 | regplot() |
多组回归拟合图 | 类别分组回归拟合图 | lmplot() |
多变量拟合 | 可在 lmplot() 中使用 hue、col、row 等 | lmplot() |
✅ 五、聚合统计图(Statistical Estimation Plots)
图类型 | 描述 | Seaborn |
---|
Bar plot(估计) | 显示类别均值及置信区间 | barplot() |
Point plot(估计) | 点线图,适合趋势对比 | pointplot() |
Lineplot(估计) | 折线图形式的估计展示 | lineplot() |
Error bars | 显示置信区间或误差范围 | 所有估计类图均可带 ci= 参数控制 |
✅ 六、热力图与矩阵图(Heatmaps & Matrix Plots)
图类型 | 描述 | Seaborn |
---|
Heatmap(热力图) | 显示矩阵值的热度 | heatmap() |
Clustermap(聚类热图) | 自动聚类 + 热力图 | clustermap() |
Corrplot(相关性图) | 变量之间的相关系数热图 | heatmap(df.corr()) |
✅ 七、时间序列图(Time Series)
图类型 | 描述 | Seaborn / Matplotlib |
---|
时间趋势图 | 时间轴下的数值变化 | lineplot() , plot() |
滑动平均线 | 使用 .rolling().mean() 平滑处理 | lineplot() + pandas |
周期性标记图 | 日/周/月标记图,自定义 x 轴标签等 | xticks() 设置 |
✅ 八、分类数据图(Categorical Plots)
可通过 catplot()
快速生成以下图:
kind='strip'
:stripplotkind='swarm'
:swarmplotkind='box'
:boxplotkind='violin'
:violinplotkind='boxen'
:boxenplotkind='point'
:pointplotkind='bar'
:barplotkind='count'
:countplot
✅ 九、极坐标图(Polar / Circular)
图类型 | 描述 | Matplotlib |
---|
极坐标图 | 使用角度和半径表示数据 | subplot(polar=True) |
雷达图(蜘蛛图) | 多维数据可视化 | 自定义 polar 绘制 |
环状图(Donut) | 饼图加空心中心 | pie() + 空白圆 |
✅ 十、图像与医学图可视化(Image Visualization)
图类型 | 描述 | Matplotlib |
---|
图像灰度显示 | 医学图像 / MRI / CT / 热图显示 | imshow(..., cmap='gray') |
彩色图像显示 | RGB / 多通道 MRI | imshow() |
图像直方图 | 灰度值频率 | hist(image.ravel()) |
多图子图组合(subplot) | 同时显示多个图像或视图 | subplot() , subplots() |
等高线图(Contour) | 图像等值线 | contour() |
图像叠加 | 原图+Mask | imshow(..., alpha=0.5) |
✅ 十一、三维图形(3D Plots)需要 mpl_toolkits.mplot3d
图类型 | 描述 | Matplotlib |
---|
3D 曲线图 | 空间折线图 | ax.plot3D() |
3D 散点图 | 三维空间分布 | ax.scatter3D() |
3D 表面图 | 曲面图 | ax.plot_surface() |
3D 条形图 | 柱状图 | ax.bar3d() |
3D 等高线 | 三维数据的等值线图 | ax.contour3D() |
✅ 十二、降维与聚类图(常与其他库结合,如 sklearn)
图类型 | 描述 | 可用库 |
---|
PCA 2D/3D 散点图 | 主成分分析后的二维可视化 | matplotlib , seaborn |
t-SNE 可视化 | 非线性降维的样本空间展示 | matplotlib , seaborn |
UMAP 可视化 | 保局部结构的降维展示 | matplotlib , seaborn |
KMeans 聚类分布图 | 聚类结果叠加于散点图 | scatter() + label |
层次聚类树状图(Dendrogram) | 层次聚类的结构图 | scipy.cluster.hierarchy |
✅ 十三、风格、调色板与主题(辅助功能)
功能 | 示例 |
---|
Seaborn 风格设置 | sns.set_theme(style='darkgrid') |
调色板 | sns.color_palette('pastel') |
Facet 网格 | sns.FacetGrid(df, col='var') |
多图组合显示 | plt.subplot() , plt.subplots() |