【数据操作与可视化】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()

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

相关推荐
circuitsosk18 分钟前
NL2SQL在工业级场景下的精度优化:Schema Linking + 动态Few-shot实战
人工智能·python·sql·大模型·nl2sql
kobe_OKOK_6 小时前
DRF接口幂等操作
python·django
廿士6 小时前
python脚本使用相关
python
青 春 记 忆7 小时前
零基础入门python19:Flask账本第一步——应用工厂、蓝图和健康检查
python·flask·后端开发
朦胧之7 小时前
Python 后端核心知识
python
denggun123457 小时前
yield
前端·数据库·python
zx_741484818 小时前
【Python 入门】面向对象基础:类、对象、成员变量与构造方法
开发语言·python
招财小梗9 小时前
沈阳商贸公司AI企业服务优势几何?
大数据·人工智能·python
ZISHU_98710 小时前
用 TLabel 给 SynTouch BioTac 数据做语义标注:从原始信号到结构化标注
开发语言·人工智能·python·数据·机器人触觉
m0_6174939411 小时前
SSLError [ASN1: NOT_ENOUGH_DATA] 问题排查与解决指南
python·ssl