【数据操作与可视化】Serborn绘图-类别散点图和热力图

【数据操作与可视化】Serborn绘图-类别散点图和热力图

一、类别散点图

通过 stripplot()函数可以画一个散点图, stripplot0函数的语法格式如下。

sql 复制代码
seaborn.stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, jitter=False)

上述函数中常用参数的含义如下

  • (1) x,y,hue:用于绘制数据的输入。
  • (2) data:用于绘制的数据集。
  • (3) jitter:表示抖动的程度(仅沿类別轴)。当很多数据点重叠时,可以指定抖动的数量或者设为True使用默认值。

为了让大家更好地理解,接下来,通过 stripplot()函数绘制一个散点图,示例代码如下。

ini 复制代码
# 获取tips数据
tips = sns.load_dataset("tips")
sns.stripplot(x="day", y="total_bill", data=tips)

运行结果如下图所示。

从上图中可以看出,图表中的横坐标是分类的数据,而且一些数据点会互相重叠,不易于观察。为了解决这个问题,可以在调用striplot()函数时传入jitter参数,以调整横坐标的位置,改后的示例代码如下。

ini 复制代码
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)

运行结果如下图所示。

除此之外,还可调用 swarmplot0函数绘制散点图,该函数的好处是所有的数据点都不会重叠,可以很清晰地观察到数据的分布情况,示例代码如下。

ini 复制代码
sns.swarmplot(x="day", y="total_bill", data=tips)

运行结果如图所示。

二、热力图

基于advertising.csv的数据,利用matplotlib的热力图(heatmap)可以直观快速了解哪些列对销售额的影响最大,代码如下:

python 复制代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb
ads = pd.read_csv('./advertising.csv')
print(ads.head())   # 显示数据列名和少量数据
sb.heatmap(ads.corr(), annot=True)   # corr:计算相关系数,annot=True,显示数字
plt.show()

从上图绘制的相关系数热力图来看,微信(wechat)的广告投放对销售额(sales)所产生的影响最大,也就是说微信广告的效果最好,微博次之,其他广告渠道最差。

当然,除了使用热力图来绘制相关性,我们也可以使用散点图来绘制两两影响,代码如下:

ini 复制代码
sb.pairplot(ads, x_vars=['wechat', 'weibo', 'others'], y_vars='sales')
plt.show()

同样可以比较直观的看出,微信与销售额之间成更好的正相关,拟合度更高。同时,根据以上可视化图像,也可以辅助我们选择一个更为合适的函数进行拟合。

相关推荐
山土成旧客1 天前
【Python学习打卡-Day38】PyTorch数据处理的黄金搭档:Dataset与DataLoader
pytorch·python·学习
七夜zippoe1 天前
依赖注入:构建可测试的Python应用架构
开发语言·python·架构·fastapi·依赖注入·反转
CoderJia程序员甲1 天前
Python连接和操作Elasticsearch详细指南
python·elasticsearch
Blossom.1181 天前
强化学习推荐系统实战:从DQN到PPO的演进与落地
人工智能·python·深度学习·算法·机器学习·chatgpt·自动化
Alice10291 天前
如何在windows本地打包python镜像
开发语言·windows·python
南屿欣风1 天前
Sentinel @SentinelResource:用 blockHandler 实现优雅的接口降级
开发语言·python
嫂子的姐夫1 天前
012-AES加解密:某勾网(参数data和响应密文)
javascript·爬虫·python·逆向·加密算法
爱吃提升1 天前
Python 使用 MySQL 数据库进行事务处理步骤
数据库·python·mysql
avi91111 天前
python大模型训练(一)如何查看工具package版本
python·aigc
pulinzt1 天前
【python第三节】循环+函数初步
开发语言·python