首页 > 其他分享 >构造用于线性回归分析使用的波动上升随机数据并绘制散点图

构造用于线性回归分析使用的波动上升随机数据并绘制散点图

时间:2024-08-12 20:55:40浏览次数:19  
标签:20 0.2 散点图 cell np ws numbers 线性 绘制

一、简介

进行线性数据回归分析经常需要用到波动上升的随机数据,本文给出了使用python构建的由线性数据+随机数据+正弦数据的波动上升数据并绘制散点图的代码和效果展示。该数据共5段100个可用于进行线性回归数据分析。

二、代码

# -*- coding: utf-8 -*-

#导入第三方库
import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import openpyxl
from openpyxl import Workbook

#构造用于线性回归分析使用的波动上升随机数据并绘制散点图

#构造正弦函数(数量20个、幅值0.6)点
m = np.linspace(0, 2*np.pi, 20)  
n = 0.6 * np.sin(m)
#构建1-20序号
numbers_x1 = list(range(1, 21))
#生成20个[(序号/20)+(±0.2)+正弦函数点]的随机数据
numbers_y1 = np.add(np.add([item / 20 for item in numbers_x1],np.random.uniform(-0.2, 0.2, 20).tolist()),n)
#构建21-40序号
numbers_x2 = list(range(21, 41))
#生成20个[(序号/20)+(±0.2)+正弦函数点]的随机数据
numbers_y2 = np.add(np.add([item / 20 for item in numbers_x2],np.random.uniform(-0.2, 0.2, 20).tolist()),n)
#构建41-60序号
numbers_x3 = list(range(41, 61))
#生成20个[(序号/20)+(±0.2)+正弦函数点]的随机数据
numbers_y3 = np.add(np.add([item / 20 for item in numbers_x3],np.random.uniform(-0.2, 0.2, 20).tolist()),n)
#构建61-80序号
numbers_x4 = list(range(61, 81))
#生成20个[(序号/20)+(±0.2)+正弦函数点]的随机数据
numbers_y4 = np.add(np.add([item / 20 for item in numbers_x4],np.random.uniform(-0.2, 0.2, 20).tolist()),n)
#构建81-100序号
numbers_x5 = list(range(81, 101))
#生成20个[(序号/20)+(±0.2)+正弦函数点]的随机数据
numbers_y5 = np.add(np.add([item / 20 for item in numbers_x5],np.random.uniform(-0.2, 0.2, 20).tolist()),n)
#创建excel文件
wb = Workbook()
#选择当前工作表
ws = wb.active
#工作表命名
ws.title = "线性回归数据"
#表格A1写入x
ws['A1'] = 'x'
#表格B1写入y
ws['B1'] = 'y'
#将20个x值写入A列
for i, x1 in enumerate(numbers_x1, start=2):
    cell = 'A{}'.format(i)
    ws[cell] = x1
#将50个y值写入B列
for i, y1 in enumerate(numbers_y1, start=2):
    cell = 'B{}'.format(i)
    ws[cell] = y1
#将20个x值写入A列    
for i, x2 in enumerate(numbers_x2, start=22):
    cell = 'A{}'.format(i)
    ws[cell] = x2
#将50个y值写入B列
for i, y2 in enumerate(numbers_y2, start=22):
    cell = 'B{}'.format(i)
    ws[cell] = y2
#将20个x值写入A列    
for i, x3 in enumerate(numbers_x3, start=42):
    cell = 'A{}'.format(i)
    ws[cell] = x3
#将50个y值写入B列
for i, y3 in enumerate(numbers_y3, start=42):
    cell = 'B{}'.format(i)
    ws[cell] = y3
#将20个x值写入A列    
for i, x4 in enumerate(numbers_x4, start=62):
    cell = 'A{}'.format(i)
    ws[cell] = x4
#将50个y值写入B列
for i, y4 in enumerate(numbers_y4, start=62):
    cell = 'B{}'.format(i)
    ws[cell] = y4
#将20个x值写入A列    
for i, x5 in enumerate(numbers_x5, start=82):
    cell = 'A{}'.format(i)
    ws[cell] = x5
#将50个y值写入B列
for i, y5 in enumerate(numbers_y5, start=82):
    cell = 'B{}'.format(i)
    ws[cell] = y5
#保存excel
wb.save('回归数据.xlsx')
#读取excel数据
data = pd.read_excel('回归数据.xlsx',sheet_name='线性回归数据')
#获取x列
x = data['x']
#获取y列
y = data['y']
#绘制散点图
plt.scatter(x,y,color = 'b')
#绘图显示
plt.show()

三、效果展示 

1、生成的excel表格效果展示

2、散点图效果展示

标签:20,0.2,散点图,cell,np,ws,numbers,线性,绘制
From: https://blog.csdn.net/xuyinqi/article/details/141141775

相关文章

  • 状态估计之非线性优化学习
    SLAM的后端优化,一般分为滤波方法与非线性优化方法,其中部分思想重叠,具有很鲜明的对比特性。在前几章中,我们学习了KF系列与PF系列,并对一部分内容进行扩展,这些方法的本质是在一步步过程中进行优化收敛,本篇将引入后端整体优化思想,在建图,轨迹跟踪,系统状态估计中应用广泛。本篇的学习大......
  • CSS 绘制扇面
    参考资料:https://juejin.cn/post/7266641059282927650 效果:源码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1......
  • 【转载】网络流与线性规划 24 题刷题指南
    前言本篇博文转载自博客园ticmis的博文网络流24题,转载时做了如下改动:排版整理,规范化\(\LaTeX\)。题单中添加了洛谷题号和洛谷难度。错别字修改。内容描述稍作改动。说实话,本人很讨厌某SDN上的各个博主间互相抄来抄去的行为,这一篇是我第一次转载别人的博文,原因是......
  • 结构开发笔记(三):solidworks软件(二):小试牛刀,绘制一个立方体
    前言  solidworks草图大师,基本的使用过程。  所有的零件基础都是从平面绘制开始,然后凸出来厚度。  本篇绘制一个简单的立方体,熟悉基本操作。 立方体绘制过程  选取一个平面绘制一个立方形,然后拉伸即可。  绘制矩形的方式:    功能所见即所得。  其......
  • 【经验分享】数据结构——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散
    目录1.线性探测(LinearProbing)2.平方探测(QuadraticProbing)3.双散列探测(DoubleHashing)4.分离链接法(SeparateChaining)5.再散列(Rehashing)如何解答这些常见问题1.写出处理冲突的方法名称2.构造基于该处理冲突方法的哈希表3.求出该哈希表在等概率情况下查找成功......
  • 线性整数规划的三道经典例题
    目录一、背包问题1.模型建立2.代码实现二、指派问题1.模型建立2.代码实现(1)输入目标函数系数(2)输入不等式约束(3)输入等式约束(4)调用函数求解三、钢管切割问题1.问题分析2.模型建立(1)利用枚举法找到料头小于等于0.9的切割方法(2)得到目标函数与约束3.代码实现(1)枚举法找出同一个原材料上所......
  • pyqt5+win32+python联合在CAD绘图无法绘制
    1初始报错想法是:写好pyqt5的简单界面代码后,用一个信号槽连接到CAD绘制图形。出现了报错:显示“已成功连接到CAD”,说明连接没有问题,但是“在CAD中绘制线条时出错:(-2147352567,'发生意外。',(0,None,None,None,0,-2147024809),None)”。搜索后给出可能原因是:1-参......
  • Mermaid 赋能 VuePress:轻松绘制流程图、时序图,让博客内容更生动
    聊聊如何让博客框架VuePress显示图表‍什么是mermaid如果你还不了解,可以先看看我的Markdown教程——使用Markdown画图。‍‍‍‍安装依赖相关插件有很多,我这里选择的是vuepress-plugin-mermaidjs:‍npmivuepress-plugin-mermaidjs‍‍‍配置在config.t......
  • python由tif影像绘制png图片并制作动图
    笔者最近需要下载一个区域的长时间序列影像,然后将其制作成动图展示其动态变化过程。这其中涉及到两个问题,一是将tif数据绘制成PNG或jpg等格式图片,二是由图片绘制动图GIF。一、由TIF绘制PNG 这里需要用到matplotlib和GDAL两个库来将tif格式图像绘制为PNG图片,如果没有相关包......
  • 【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和
     ......