时间序列数据可视化

embedded/2024/9/25 14:27:26/
#时间序列可视化
#离散数据的时间序列可视化
import numpy as np
import pandas as pdts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()
#%%
#连续数据的时间序列可视化
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD'))
df = df.cumsum()
plt.figure()
df.plot()
plt.legend(loc='best')
#%%
#连续型图表
#阶梯图
import numpy as np
import matplotlib.pyplot as pltx = np.arange(14)
y = np.sin(x / 2)plt.figure(figsize=(12,5))
plt.subplot(121)
plt.step(x, y + 2, label='pre (default)')
plt.plot(x, y + 2, 'o--', color='grey', alpha=0.3)plt.step(x, y + 1, where='mid', label='mid')
plt.plot(x, y + 1, 'o--', color='grey', alpha=0.3)plt.step(x, y, where='post', label='post')
plt.plot(x, y, 'o--', color='grey', alpha=0.3)plt.grid(axis='x', color='0.95')
plt.legend(title='Parameter where:')
plt.title('plt.step(where=...)')plt.subplot(122)
plt.plot(x, y + 2, drawstyle='steps', label='steps (=steps-pre)')
plt.plot(x, y + 2, 'o--', color='grey', alpha=0.3)plt.plot(x, y + 1, drawstyle='steps-mid', label='steps-mid')
plt.plot(x, y + 1, 'o--', color='grey', alpha=0.3)plt.plot(x, y, drawstyle='steps-post', label='steps-post')
plt.plot(x, y, 'o--', color='grey', alpha=0.3)plt.grid(axis='x', color='0.95')
plt.legend(title='Parameter drawstyle:')
plt.title('plt.plot(drawstyle=...)')
plt.show()
#%%
#折线图
df2.plot(kind='line')
#%%
#拟合曲线
'''
Author: CloudSir
Date: 2021-08-03 15:01:17
LastEditTime: 2021-08-03 15:26:05
LastEditors: CloudSir
Description: Python拟合任意函数
https://github.com/cloudsir
'''
# 引用库函数import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize as opplt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文
plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号# 需要拟合的函数
def f_1(x, A, B, C):return A * x**2 + B * x + C# 需要拟合的数据组
x_group = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y_group = [2.83, 9.53, 14.52, 21.57, 38.26, 53.92, 73.15, 101.56, 129.54, 169.75, 207.59]# 得到返回的A,B值
A, B, C = op.curve_fit(f_1, x_group, y_group)[0]# 数据点与原先的进行画图比较
plt.scatter(x_group, y_group, marker='o',label='真实值')
x = np.arange(0, 15, 0.01)
y = A * x**2 + B *x + C
plt.plot(x, y,color='red',label='拟合曲线')
plt.legend() # 显示labelplt.show()#%%
#螺旋图
import turtle
n = 500
# turtle.left(60)s
turtle.penup()
turtle.goto(-450,150)
turtle.pendown()
turtle.pencolor("blue")
for i in range(1,1000,1):if i < 500:n = n - 1turtle.speed(100)turtle.fd(n)turtle.right(140)else:n+=1turtle.speed(100)turtle.pencolor('red')turtle.fd(n)turtle.right(114)
turtle.done()
#%%
from turtle import *speed(0)  # 最快的画笔速度# 画圆脸
setup(600, 600, 0, 0)
penup()
fd(-200)
pendown()
color('yellow', 'yellow')
begin_fill()
seth(-90)
circle(200)
end_fill()# 画嘴巴
penup()
seth(0)
fd(10)
pendown()
pensize(3)  # 调整画笔大小
color('red')
seth(-90)
circle(190, 180)# 画眼睛
penup()
fd(100)
seth(180)
fd(573)
for i in range(2):  # 给画两只眼睛制造相同代码,才可以使用for循环,绘制两只眼睛penup()seth(0)fd(200)pendown()pensize(2)seth(20)color('black', 'white')begin_fill()circle(-230, 40)circle(-10, 180)circle(210, 40)circle(-10, 180)end_fill()color('black', 'black')begin_fill()circle(-10)end_fill()#%%
#热图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pddf = pd.DataFrame(np.random.randn(10, 5))plt.figure(figsize=(10, 8))# 设置字体
sns.set(font_scale=1.2)
plt.rc('font',family=['Times New Roman', 'SimSun'], size=12)
plt.subplots_adjust()
ax = sns.heatmap(df.corr(), annot=True, fmt=".2f")
ax.set_title('相关性热力图')  # 图标题
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
figure = ax.get_figure()
# figure.savefig('sns_heatmap.jpg', bbox_inches='tight')
#%%
#离散型
#柱形图
df3.plot(kind='bar')
#%%
#散点图
df3.plot(kind='scatter', x='a', y='b')
#%%
#堆叠柱形图
df3.plot(kind='bar', stacked=True)
#%%
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 生成数据
theta = np.linspace(0, 2 * np.pi, 100)
z = np.linspace(-1, 1, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)# 创建图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')# 绘制花瓶图
ax.plot(x, y, z, label='花瓶图')
ax.legend()plt.show()

 


http://www.ppmy.cn/embedded/116656.html

相关文章

小程序服务零工市场

零工市场小程序有着信息发布、岗位匹配、线上接单、零工人员保障险参保、技能培训、费用结算、完工确认、服务评价、纠纷调解等功能&#xff0c;为求职者和雇主搭建一座高效、便捷、精准的对接桥梁。 用工单位通过小程序的“雇主找人”&#xff0c;发布招聘信息&#xff0c;找到…

maven报错:Unresolved plugin ‘org.apache.maven.pluginsmaven-resources-plugin‘

maven报错&#xff1a;Unresolved plugin: ‘org.apache.maven.plugins:maven-resources-plugin‘ 最近初学java&#xff0c;这里记录一下报错出现的原因以及解决办法 问题示例 如图所示&#xff0c;就是在创建一个项目之后对应插件的部分有爆红 问题出现的原因 简单来说就…

基于springboot在线点餐系统

基于springbootvue实现的点餐系统 &#xff08;源码L文ppt&#xff09;4-077 第4章 系统设计 4.1 总体功能设计 一般个人用户和管理者都需要登录才能进入点餐系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使用…

SkyWalking 环境搭建部署

架构简介 skywalking agent : 和业务系统绑定在一起,负责收集各种监控数据skywalking oapservice : 是负责处理监控数据的,比如接受skywalking agent的监控数据,并存储在数据库中;接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。Skywalking oapserv…

dspic33F Mplab IDE V8.92内存使用情况

Select Device Configure/Select Device, 如dsPIC33FJ256GP7102. Check memory using View/Memory usage Gauge 同样的程序&#xff0c;对于dsPIC33FJ256GP710 dsPIC33FJ128GP710

ROS第六梯:ROS+VSCode+C++消息发布和订阅

第一步&#xff1a;创建ROS工作空间&#xff0c;并在工作空间下创建名为srr_pkg的功能包&#xff0c;具体步骤参考第二章。 第二步&#xff1a;在src下创建publisher.cpp作为发布节点代码文件&#xff0c;创建subscriber.cpp作为订阅节点代码文件&#xff1a; 主要步骤是&#…

PasteForm最佳CRUD实践,实际案例PasteTemplate详解(一)

本文将介绍soft.pastecode.cn出品的PasteForm&#xff0c;PasteForm是贴代码使用Dto思想实现的CRUD的一个组件&#xff0c;或者说输出一个思想&#xff01; 为啥我觉得是最佳的CRUD呢&#xff1f;先结合你的实际项目解答下以下问题&#xff1a; 1.如果有一个系统&#xff0c;有…

监控易监测对象及指标之:全面监控Oracle ODBC数据库

在数字化时代&#xff0c;数据库作为存储和管理企业核心数据的基石&#xff0c;其稳定性和性能直接关系到业务的连续性和效率。Oracle数据库以其强大的功能和稳定性&#xff0c;广泛应用于各行各业。为了确保Oracle数据库的稳定运行和高效性能&#xff0c;对其进行全面监控显得…