python 은 matplotlib 라 이브 러 리 를 사용 하여 무 작위 산책 도 를 생 성 합 니 다.

이 튜 토리 얼 은 python 을 사용 하여 무 작위 로 밍 데 이 터 를 만 들 고 matplotlib 를 사용 하여 데 이 터 를 보 여 줍 니 다.
개발 환경
운영 체제:Windows 10
IDE: Pycharm 2017.1.3
파 이 썬 버 전:파 이 썬 3.6
파 이 썬 제3자 라 이브 러 리:matplotlib
실전 을 시작 하 다
1.RandomWalk()클래스 만 들 기
무 작위 산책 을 모 의 하기 위해 서,랜 덤 워 크 라 는 클래스 를 만 들 것 입 니 다.랜 덤 으로 방향 을 선택 할 것 입 니 다.

from random import choice

class RandomWalk():
  """            """

  def __init__(self, num_points=50000):
    """          """
    self.num_points = num_points

    #          (0,0)
    self.x_values = [0]
    self.y_values = [0]
이 종 류 는 세 가지 속성 이 있 는데 하 나 는 무 작위 로 거 닐 어 가 는 횟수 를 저장 하 는 변수 이 고 다른 두 개 는 무 작위 로 거 닐 어 가 는 x 와 y 좌 표를 저장 합 니 다.RandomWalk 는 init()와 fill 두 가지 방법 만 포함 합 니 다.walk()
2.방향 선택
우 리 는 fill 을 사용 할 것 이다.walk()는 산책 에 포 함 된 점 을 만 들 고 산책 방향 을 결정 합 니 다.

def fill_walk(self):
    """            """

    #     ,           
    while len(self.x_values) < self.num_points:
      #                   
      x_direction = choice([1,- 1])
      x_distance = choice([1, 2, 3, 4])
      x_step = x_direction * x_distance

      y_direction = choice([1, -1])
      y_distance = choice([1, 2, 3, 4])
      y_step = y_direction * y_distance

      #       
      if x_step == 0 and y_step == 0:
        continue

      #        x y 
      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)
우 리 는 필요 한 수량의 점 을 포함 할 때 까지 순환 을 만 들 었 습 니 다.
우 리 는 choice([1,-1])를 사용 하여 x 에 게direction 에서 값 을 선택 하 십시오.-1 은 왼쪽으로 가 고 1 은 오른쪽으로 가 는 것 을 의미 합 니 다.
choice([0,1,2,3,4])무 작위 로 0-4 사이 의 정 수 를 선택 하여 python 이 지정 한 방향 으로 얼마나 멀리 가 는 지 알려 줍 니 다.
3.랜 덤 산책 그림 그리 기

import matplotlib.pyplot as plt

from randomwalk import RandomWalk

#           ,          
while True:
  #     RandomWalk  ,            
  rw = RandomWalk()
  rw.fill_walk()

  plt.figure(dpi=128, figsize=(8, 4))

  point_numbers = list(range(rw.num_points))
  plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Reds, edgecolors='none', s=1)
  #        
  plt.scatter(0, 0, c='green', edgecolors='none', s=100)
  plt.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100)
  plt.show()

  keep_running = input("Make another walk?(y/n):")
  if keep_running == 'n':
    break
RandomWalk 인 스 턴 스 를 만 들 고 fill 을 호출 합 니 다.walk()방법,우 리 는 랜 덤 으로 x,y 와 횟수 를 scatter()에 전달 하고 적당 한 사 이 즈 를 선택 했다.시작 점 과 끝 점 을 그 렸 습 니 다.
4.실행 결과

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기