当多年份数据绘制折线图时,如何绘制多年均值,且显示置信区间呢?本文利用Seaborn绘制带有置信区间的折线图,记录在此分享给更多有需要的同学。
# -*- encoding: utf-8 -*-
'''
@File : line_demo.py
@Time : 2022/06/11 16:41:18
@Author : HMX
@Version : 1.0
@Contact : [email protected]
'''
# here put the import lib
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import time
def cm2inch(x,y):
return x/2.54,y/2.54
t1 = time.time()
# 构造数据
np.random.seed(1503)
# 构造单一年份数据
x = np.arange(1,13)
y = np.sin(x)
# 构造十年数据以计算均值和置信区间
year = 10
ys = []
# 利用随机数添加一些误差
for i in range(year):
ys.append(y+np.random.rand(len(y))+np.random.randint(1,5,size = (len(y),)))
ys = np.asarray(ys).reshape(-1,)
xs = x.tolist()*year
fig,ax1 = plt.subplots(1, 1,figsize=cm2inch(8,6))
sns.lineplot(xs,ys,ax = ax1)
plt.xlim(0,14)
plt.xticks(np.arange(0,15,2))
plt.ylim(0,6)
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.tight_layout()
plt.savefig(r'D:\公众号\N19\line_demo.png',dpi = 600)
t2 = time.time()
print('共计用时{:.2f}s'.format(t2-t1))
plt.show()
如果对你有帮助的话,请‘点赞’、‘收藏’,‘关注’,你们的支持是我更新的动力。
欢迎关注公众号【森气笔记】。