一、简介
进行数据分析时经常需要用到线性随机数据,本文给出了使用python构建4段200个线性变化随机数写入excel并绘制散点图的代码和效果展示。
二、代码
# -*- coding: utf-8 -*-
import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import openpyxl
from openpyxl import Workbook
#构造随机数据并写入excel(自动生成excel表格)
#构建1-50序号
numbers_x1 = list(range(1, 51))
#生成50个1到2之间的随机数据
numbers_y1 = np.random.uniform(1, 2, 50).tolist()
#构建51-100序号
numbers_x2 = list(range(51, 101))
#生成50个2到3之间的随机数据
numbers_y2 = np.random.uniform(2, 3, 50).tolist()
#构建101-150序号
numbers_x3 = list(range(101, 151))
#生成50个3到4之间的随机数据
numbers_y3 = np.random.uniform(3, 4, 50).tolist()
#构建151-200序号
numbers_x4 = list(range(151, 201))
#生成50个4到5之间的随机数据
numbers_y4 = np.random.uniform(4, 5, 50).tolist()
#创建excel文件
wb = Workbook()
#选择当前工作表
ws = wb.active
#工作表命名
ws.title = "线性数据"
#表格A1写入x
ws['A1'] = 'x'
#表格B1写入y
ws['B1'] = 'y'
#将50个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
#将50个x值写入A列
for i, x2 in enumerate(numbers_x2, start=52):
cell = 'A{}'.format(i)
ws[cell] = x2
#将50个y值写入B列
for i, y2 in enumerate(numbers_y2, start=52):
cell = 'B{}'.format(i)
ws[cell] = y2
#将50个x值写入A列
for i, x3 in enumerate(numbers_x3, start=102):
cell = 'A{}'.format(i)
ws[cell] = x3
#将50个y值写入B列
for i, y3 in enumerate(numbers_y3, start=102):
cell = 'B{}'.format(i)
ws[cell] = y3
#将50个x值写入A列
for i, x4 in enumerate(numbers_x4, start=152):
cell = 'A{}'.format(i)
ws[cell] = x4
#将50个y值写入B列
for i, y4 in enumerate(numbers_y4, start=152):
cell = 'B{}'.format(i)
ws[cell] = y4
#保存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()