seaborn.lineplot:强如matlab的python二维数据趋势图一键绘制

发现了一个很强的绘图工具,可以用很简单的命令绘制多种图案,但是绘图的过程和原理需要弄清楚才能绘制想要的图片,参考的官网文档

seaborn.lineplot(*, x=None, y=None, hue=None, size=None, style=None, data=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, dashes=True, markers=None, style_order=None, units=None, estimator='mean', ci=95, n_boot=1000, seed=None, sort=True, err_style='band', err_kws=None, legend='auto', ax=None, **kwargs)

这个函数相当于matlab里的plt.plot,但是却更加智能,绘制的图像也更好看。
seaborn.lineplot中几个参数十分重要,选取其中最有代表性的几个:

x, y:vectors or keys in data
代表哪个数据是x轴的,哪个数据是y轴显示的,注意因为只能绘制二维图,因此y轴相当于要显示的数据。可以是向量,也可以是dataframe的表头关键字

hue: vector or key in data
# 代表需要按照颜色不同列出不同颜色的线,这个虽然可以是向量,但是基本上是给表格准备的

size: vector or key in data
# 与hue类似,但是使用线的粗细来区分

style: vector or key in data
# 与hue类似,但是是用点划线之类的来区分

data: pandas.DataFrame, numpy.ndarray, mapping, or sequence
# 用于上传表格或者np数组的地方

下面以一个航班数据为例说明seaborn.lineplot能画什么图,以下每个程序块都可以单独复制出去运行。
航班数据就是一个dataframe:
在这里插入图片描述

1、整理好数据直接画图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")
sns.set()
# 引入数据
flights = sns.load_dataset("flights")
# 重新整理数据,按照行、列、值的方式
flights_wide = flights.pivot("year", "month", "passengers")
# 可以直接画图了
sns.lineplot(data=flights_wide)
plt.show()

在这里插入图片描述
2、不整理数据用关键字直接画图
2.1 颜色区分

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")
sns.set()
# 引入数据
flights = sns.load_dataset("flights")
# 用颜色区分第三维数据
sns.lineplot(data=flights, x="year", y="passengers", hue="month")
plt.show()

在这里插入图片描述
2.2、点线区分

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")
sns.set()
# 引入数据
flights = sns.load_dataset("flights")
# 用点线区分第三维数据
sns.lineplot(data=flights, x="year", y="passengers", style="month")
plt.show()

在这里插入图片描述
2.3、线宽区分

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")
sns.set()
# 引入数据
flights = sns.load_dataset("flights")
# 用线宽区分第三维数据
sns.lineplot(data=flights, x="year", y="passengers", size="month")
plt.show()

在这里插入图片描述

3、用阴影表示重复内容
这是这个函数最神奇的地方,就是当X坐标中出现了重复对应的y值时,就会绘制其平均值为实线,范围为浅色阴影,十分方便,尤其是绘制强化学习的曲线时。
直接使用最普通的x y坐标

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")
sns.set()
# 引入数据
flights = sns.load_dataset("flights")
# RL图
sns.lineplot(x=np.array([1,2,3,4,5,1,2,3,4,4]), y=np.array([1,2,3,4,5,7,9,5,9,9]))
plt.show()

在这里插入图片描述
上面因为x没有5的重复坐标,所以阴影没有覆盖5。
当然也可以依然用航班表格中的数据,只要明白了原理即可:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")
sns.set()
# 引入数据
flights = sns.load_dataset("flights")
# RL图
sns.lineplot(data=flights, x="year", y="passengers")
plt.show()

在这里插入图片描述
更多的阴影类型可以看官方文档
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值