matplotlib绘制函数图像,

  matplotlib绘制函数图像,

  本文主要介绍如何在Python中使用随机函数生成变化的图形。文中的示例代码解释得很详细,对我们的学习有一定的参考价值。你可以知道你需要什么。

  00-1010前言1。rand_moving.py文件的定义函数如下2。绘图模块摘要

  

目录

 

  综合前面提到的类,函数,matplotlib等。并完成一个随机移动的过程(注意要确定移动的次数,比如10万)。每次行走完全是随机的,没有明确的方向。结果是由一系列随机决策决定的,最后是一个显示每个运动位置的图表。

  思考:

  1)每次行走的像素数由随机函数确定,并且每次移动的方向也是随机确定的。随机方向和随机像素一起移动位置大小和方向。

  2)确保每次移动的位置都保存在列表中,供以后matplotlib调用生成图表。

  所以可以分为两个文件,一个是rand_moving类,生成移动像素和方向,记录相关数据,另一个是绘图模块randdraw_visual,调用matplotlib和rand_moving类生成实例,调用计算出的序列组生成图表。

  

前言

 

  1.初始化程序,设置一个参数,即移动次数,所有初始化位置都设置为0。

  2.随机生成X、Y方向和移动像素,相乘得到相对移动距离,即每次移动的距离和方向,即需要四个随机函数分别确定水平和垂直移动位置的大小和方向。

  3.计算下一个位置并保存在位置序列中,即每走一步后在屏幕上的绝对位置。

  如下所示:

  从随机导入选择#random是系统自带的随机功能模块。

  定义一个Rand_moving类

  DEF _ _ init _ _ (self,num _ times=100000) 3360 #初始化,默认参数为100000。您可以修改此参数来尝试机器的运行速度。

  Self.num_times=num_times #移动次数

  Self.x_values=[0] #设置两个系列来保存每一步的位置。初始位置为(0,0),数列元素的个数会增加到num_times来记录每一步的位置信息。

  self.y_values=[0]

  Def fill_moving(self): #定义了一个计算移动方向和距离的函数,计算要保存的位置信息。

  而len(self . x _ values)self . num_times : #循环连续运行,直到行走包含所需点数num _ times。

  X_direction=choice([1,-1]) #x的移动方向,1向上,0不变,-1向下

  X _ distance=choice ([0,1,2,3,4,5]) # x的每次移动的像素,

  X_step=x_direction*x_distance #移动方向乘以移动距离,确定沿x的移动距离。

  Y_direction=choice([1,-1]) #y的移动方向,1向上,0不变,-1向下

  Y _ distance=choice ([0,1,2,3,4,5])# y的每一步移动的像素,

  Y_step=y_direction*y_distance #移动方向乘以移动距离,确定沿y的移动距离。

  #留在原地

  X _ step==0和y_step==03360 # X _ step和y_step都是零,说明你是静止不动的。

  继续

  #计算下一点的位置坐标X和Y值,分别保存在x_values和y_values系列中。

  Next _ x=自己。x _ values [-1] x _ step # self。x _ values [-1]表示它是序列中的最后一个值,初始值是x_values=[0]

  next_y=self.y_values[-1] y_step

  self.x_values.append(next_x

  ) #将每次计算的next_x存入到数列x_values中

   self.y_values.append(next_y ) #将每次计算的next_y存入到数列y_values中

  

 

  

二、绘图模块

 

  randdraw_visual.py

  绘图模块randdraw_visual.py的功能如下:

  1、调用matplotlib和rand_moving类;

  2、rand_moving生成一个实例,并计算出的数列组生成图表;

  3、用matplotlib中的方法生成图表

  

import matplotlib.pyplot as plt #导入matplotlib模块

 

  程序运行效果(注意,为了对比,程序中创建了3个实例,其中一个为默认值,另两个为50万和5万,如果一直没显示,请耐心等会儿!)

  

 

  上述三个实例处在同一图中,呈现不同颜色,如果只有一个实例,如何修改颜色?

  入门(1)中,语句plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues,edgecolor='none', s=40) 是修改渐变色的,可偿试将randdraw_visual.py模块中进行如下修改:

  

plt.scatter(rm.x_values, rm.y_values,c=y_values, cmap=plt.cm.Reds,edgecolor=none,s=15)

 

  注:c的参数是字符串,可以直接使用颜色的英文进行赋值,比如:c='yellow',见后面修改起点、终点颜色。

  指定一个红色,一个蓝色,实际运行效果(有重复的地方,实例设置为蓝色在后面,将红色盖住):

  

 

  除些之外,还可以对特定的点进行设定,也就是在语句plt.scatter(rm.x_values, rm.y_values,c=y_values, cmap=plt.cm.Reds,edgecolor='none',s=15)之后,再多几个相关语句,并给定相关点坐标。

  

import matplotlib.pyplot as plt

 

  实际运行效果:

  

 

  显示图表屏幕大小

  图表适合屏幕大小能有效地将数据中的规律呈现出来,如果要调整屏幕大小,可调整matplotlib输出的尺寸

  plt.figure(dpi=128,figsize=(12, 10))

  函数 figure() 用于指定图表的宽度、高度、分辨率和背景色。

  形参 figsize 指定一个元组

  形参 dpi 向 figure() 传递该分辨率

  注意:plt.figure(dpi=128,figsize=(12, 10))语句要在其他plt开始语句的前面,才能调整显示屏幕的大小。

  

import matplotlib.pyplot as plt

 

  当然,还可以试一下他函数功能。

  是不是有点小小的成就感!

  

 

  

小结

 

  请思考:

  1、上述程序是否能进行优化(比如功能相同的)

  2、创建三个3个实例,用了3个语句,能否建一个函数,只输入一个数n,就自动创建n个实例?同时,每个实例的num_times随机,(n比较大时,num_times应该比较小)

  3、当实现上述功能后,程序运行,只输入一个参数(创建实例的个数),就会自动生成对应的num_times,并分别调用相关函数生成对应图表。

  以上就是Python+matplotlib调用随机函数生成变化图形的详细内容,更多关于Python随机函数生成变化图形的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: