Python 可视化数据

在数据整理的时候很多时候用到画图表达,我们可以利用Python这个工具将数据可视化表达,显得更加清晰,而且方便好用,等到学到机器学习的时候回,可以用来监督学习的输出,作为预测结果,所以学习这部分可视化表达数据非常有必要。
#引入第三方库matplotlib中的pyplot,并在random模块中引入随机函数,接着创建一个生成随机数的类,即为RandomWalk,生成5000个随机数,并且假设x 和y 的初始值为0。
设置x轴的方向值为1和-1.向右的值是1,向左为-1,x走的步长为方向乘上距离,向左和向右走的步长就是每一次移动的距离.设置包含走的距离包含0的意思是点不仅可以在x轴上移动,也可以在y轴上进行移动。如果x_step 为正,将向右移动,为负将向左移动,而为零将垂直移动;如果y_step 为正,就意味着向上移动,为负意味着向下移动,而为零意味着水平移动。如果x_step 和y_step 都为零,则意味着原地踏步,我们拒绝这样的情况,接着执行下一次循环。
import matplotlib.pyplot as plt
from random import choice
class RandomWalk():
def init(self,num_points=5000):
self.num_points=num_points
self.x_values=[0]
self.y_values=[0]
def fill_walk(self):
while len(self.x_values)<self.num_points:
x_direction=choice([1,-1])
x_distance=choice([0,1,2,3,4])
x_step=x_directionx_distance
y_direction=choice([1,-1])
y_distance=choice([0,1,2,3,4])
y_step=y_direction
y_distance
if x_step0 and y_step0:
continue
next_x=self.x_values[-1]+x_step
next_y=self.y_values[-1]+y_step
self.x_values.append(next_x)
self.y_values.append(next_y)

while True:

  1. rw=RandomWalk(50000)
  2. rw.fill_walk()
    3.plt.figure(dpi=128,figsize=(10,6))
  3. point_numbers=list(range(rw.num_points))
    5.plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,s=15)
    6.plt.scatter(0,0,c=‘green’,edgecolors=‘none’,s=100)
    7.plt.scatter(rw.x_values[-1],rw.y_values[-1],c=‘red’,edgecolor=‘none’,s=100)
  4. plt.axes().get_xaxis().set_visible(False)
    9.plt.axes().get_yaxis().set_visible(False)
    10.plt.show()
  5. keep_running=input(“make another walk?:”)
  6. if keep_running==‘n’:
    break
    这里的一些参数有可能不是很清晰,我这里逐一解释一下。
    将之前创建的RandomWalk类赋值给rw,rw.fill_walk()取自类中的函数,3指的是绘制屏幕的像素128,大小为一个元组,代表长和宽。
    4中使用了range() 生成了一个数字列表,其中包含的数字个数与漫步包含的点数相同。接下来,我们将这个列表存储在point_numbers 中,以便后面使用它来设置每个漫步点的颜色。我们将参数c 设置为point_numbers ,指定使用颜色映射Blues ,并传递实参edgecolor=none 以删除每个点周围的轮廓。最终的随机漫步图从浅蓝色渐变为深蓝色。注:colormap是颜色映射,我们将使用颜色映射来指出漫步中各点的先后顺序,并删除每个点的黑色轮廓(edgecolor=‘none’),让它们的颜色更明显。为根据漫步中各点的先后顺序进行着色,我们传递参数c ,并将其设置为一个列表,其中包含各点的先后顺序。由于这些点是按顺序绘制的,因此给参数c 指定的列表只需包含数字1~5000。
    7和6主要是为了突出显示起点和终点,9和8为了隐藏x,y轴。
    11和12设置循环漫步,如果关闭漫步的窗口,如果输入为‘n’,则退出漫步,如果为其他则继续生成随机漫步图。

可以尝试利用plot代替scatter,生成花粉在水面上受到水分子挤压的运动路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值