python 은 matplotlib 라 이브 러 리 를 사용 하여 무 작위 산책 도 를 생 성 합 니 다.
3119 단어 pythonmatplotlib랜 덤 산책 도
개발 환경
운영 체제: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.실행 결과
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.