更多精彩内容,欢迎关注:

视频号
视频号

抖音
抖音

快手
快手

微博
微博

python绘图中的四个绘图技巧

导读在可视化数据时,通常需要在单个图形中绘制多个图形。 例如,如果您想从不同的角度可视化相同的变量如:数字变量的并排直方图和箱线图,则多个图形很有用。 在这篇文章中,分享了绘制多个图形的4个简单但实用的技巧。

   

技巧1: plt.subplots()

技巧2: plt.subplot()

技巧3: plt.tight_layout()

技巧4: plt.suptitle()

数据集:

让我们导入包并更新图表的默认设置,为图表添加一点个人风格。 我们将在提示上使用 Seaborn 的内置数据集:

import seaborn as sns # v0.11.2  
import matplotlib.pyplot as plt # v3.4.2  
sns.set(style='darkgrid', context='talk', palette='rainbow')df = sns.load\_dataset('tips')  
df.head()

技巧1: plt.subplots()

绘制多个子图的一种简单方法是使用 plt.subplots() 。

这是绘制 2 个并排子图的示例语法:

fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10,4))  
sns.histplot(data=df, x='tip', ax=ax[0])  
sns.boxplot(data=df, x='tip', ax=ax[1]);

在这里,我们在一个图中绘制了两个子图。 我们可以进一步自定义每个子图。

 例如,我们可以像这样为每个子图添加标题:

fig, ax = plt.subplots(1, 2, figsize=(10,4))  
sns.histplot(data=df, x='tip', ax=ax[0])  
ax[0].set\_title("Histogram")  
sns.boxplot(data=df, x='tip', ax=ax[1])  
ax[1].set\_title("Boxplot");

在循环中将所有数值变量用同一组图表示:

numerical = df.select\_dtypes('number').columnsfor col in numerical:  
 fig, ax = plt.subplots(1, 2, figsize=(10,4))  
 sns.histplot(data=df, x=col, ax=ax[0])  
 sns.boxplot(data=df, x=col, ax=ax[1]);
技巧2: plt.subplot()

另一种可视化多个图形的方法是使用 plt.subplot(),末尾没有 s

 语法与之前略有不同:

plt.figure(figsize=(10,4))  
ax1 = plt.subplot(1,2,1)  
sns.histplot(data=df, x='tip', ax=ax1)  
ax2 = plt.subplot(1,2,2)  
sns.boxplot(data=df, x='tip', ax=ax2);

当我们想为多个图绘制相同类型的图形并在单个图中查看所有图形,该方法特别有用:

plt.figure(figsize=(14,4))  
for i, col in enumerate(numerical):  
 ax = plt.subplot(1, len(numerical), i+1)  
 sns.boxplot(data=df, x=col, ax=ax)

我们同样能定制子图形。例如加个title

plt.figure(figsize=(14,4))  
for i, col in enumerate(numerical):  
 ax = plt.subplot(1, len(numerical), i+1)  
 sns.boxplot(data=df, x=col, ax=ax)   
 ax.set\_title(f"Boxplot of {col}")

通过下面的比较,我们能更好的理解它们的相似处与不同处熟悉这两种方法很有用,因为它们可以在不同情况下派上用场。

技巧3: plt.tight_layout()

在绘制多个图形时,经常会看到一些子图的标签在它们的相邻子图上重叠,

如下所示:

categorical = df.select\_dtypes('category').columnsplt.figure(figsize=(8, 8))  
for i, col in enumerate(categorical):  
 ax = plt.subplot(2, 2, i+1)  
 sns.countplot(data=df, x=col, ax=ax)

顶部两个图表的 x 轴上的变量名称被剪掉,右侧图的 y 轴标签与左侧子图重叠.使用plt.tight_layout很方便

plt.figure(figsize=(8, 8))  
for i, col in enumerate(categorical):  
 ax = plt.subplot(2, 2, i+1)  
 sns.countplot(data=df, x=col, ax=ax)   
plt.tight\_layout()

专业 看起来更好了。

技巧4: plt.suptitle()

真个图形添加标题:

plt.figure(figsize=(8, 8))  
for i, col in enumerate(categorical):  
 ax = plt.subplot(2, 2, i+1)  
 sns.countplot(data=df, x=col, ax=ax)   
plt.suptitle('Category counts for all categorical variables')  
plt.tight\_layout()

此外,您可以根据自己的喜好自定义各个图。 例如,您仍然可以为每个子图添加标题。

到此这篇关于python绘图 四个绘图技巧的文章就介绍到这了,希望大家以后多多支持好二三四!

为你推荐
资讯专栏
热门视频
相关推荐
js中toString方法3个作用 信息系统项目管理师报考条件 信息系统项目管理师报考时间 信息系统项目管理师报名时间 信息系统项目管理师考试时间 pmp与信息系统项目管理师 信息系统项目管理师报考要求 信息系统项目管理师有效期 信息系统项目管理师考什么论文 信息系统项目管理师是什么类别 软考信息系统项目管理师怎么备考 备考流程有哪些 考信息系统项目管理师需要考几门 信息系统项目管理师考试几门 信息系统项目管理师初中能考吗 信息系统项目管理师英语简称 渗透测试怎么做 渗透测试的步骤都有哪些 你知道吗 渗透测试需要学什么 渗透测试是什么 渗透测试有什么特点 渗透测试是什么意思 渗透测试工程师是干什么的 图像检索之基于vlfeat实现SIFT特征 Python按键或值对字典进行排序 提升Python运行速度的5个小技巧 学习python的while循环嵌套 Python实现消消乐小游戏 python实现新年倒计时实例代码 详解python的循环 基于Python实现PDF区域文本提取工具 Python数据分析处理(三)--运动员信息的分组与聚合 Python实现城市公交网络分析与可视化 Python 垃圾回收机制详解 python正则表达式语法学习笔记 一文秒懂python正则表达式常用函数 Python常用的正则表达式处理函数详解 JS截取字符串的三种方法详解 PHP遍历数组的6种方式总结 php两种基本的输出方及实例详解 php生成唯一uid的解决方法详解 PHP7中对十六进制字符串处理的问题详解 PHP对接抖音开发平台接口的详细教程
Top