数据可视化指的是通过可视化表示来探索数据,它与数据挖掘紧密相关。
python有一系列的可视化和分析工具,最流行的工具之一是matplotlib,它是一个数学绘图库。
实现绘制随机漫步图
利用random库来获取随机数,用matplotlib进行绘图
1.创建一个类,用于生成两个储存随机漫步经过的每个点的x,y坐标
代码如下:
from random import choice
class RandomWalk():
def __init__(self,numpoints=5000):
self.numpoints=numpoints #规定漫步次数,默认值为5000
self.x_values=[0] #x轴
self.y_values=[0] #y轴
def get_step(self):
direction=choice([1,-1]) #随机选择方向
distance=choice([0,1,2,3,4]) #漫步长度
step=direction*distance
return step
def fill_walk(self): #生成两个长度为numpoint的列表
while len(self.x_values) < self.numpoints:
x_step=self.get_step()
y_step=self.get_step()
if x_step==0 and y_step==0: #防止原地不动
continue
x_next=self.x_values[-1]+x_step #点在x轴上的位移
y_next=self.y_values[-1]+y_step #点在y轴上的位移
self.x_values.append(x_next) #下一个点的x轴值
self.y_values.append(y_next) #下一个点的y轴值
实现绘制的函数如下
import matplotlib.pyplot as plt
from RandomWalk import RandomWalk
while True:
rw=RandomWalk(10000) #设置漫步次数为10000
rw.fill_walk() #生成两个储存x,y轴的值的列表
plt.figure(figsize=(15,8)) #设置窗口大小
plt.scatter(rw.x_values,rw.y_values,c=rw.y_values,s=1) #绘制散点图
# plt.plot(rw.x_values,rw.y_values,linewidth=3) #绘制折线图
plt.show()
flag=input("是否继续绘制(y/n):")
if flag=='n':
break
运行结果
