zoukankan      html  css  js  c++  java
  • Python 随机漫步学习总结

    1、修改标签文字和线条粗细

    #设置图表标题,并给坐标轴加上标签
    plt.title("Random Walk", fontsize=24)
    plt.xlabel("x_values", fontsize=15)
    plt.ylabel("y_values", fontsize=15)
    #设置刻度标记的大小
    plt.tick_params(axis='both', labelsize=14)
    

    2、绘制折线图以及散点图

    折线图

    输入两个列表分别作为折线图的横坐标和纵坐标,c为RGB颜色表示法

    plt.plot(rw.x_values, rw.y_values, c=(0, 0, 0.8), linewidth=1)
    

    散点图

    两个列表、c同上折线图的表示

    区别在于散点图可以采用颜色映射,c作为一个列表输入,cmap指定映射的颜色,进行渐变颜色的映射

    edgecolors指定点的边缘是否有颜色,s为点的大小

    plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Reds,
                edgecolors='none', s=10) 

    也可以直接描绘两个点,如起点和终点

    plt.scatter(0, 0, c='green', s=150)
    plt.scatter(rw.x_values[-1], rw.y_values[-1], c='blue', s=150)
    

    3、隐藏坐标轴

    plt.axes().get_xaxis().set_visible(False)
    plt.axes().get_yaxis().set_visible(False)
    

    4、保存图片

    savefig()必须在show()之前,否则得到的是空白图片

    plt.savefig('random_walk.png', bbbox_inches='tight')
    

    5、调整尺寸

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

     

    6、最后附上代码

    random_walk.py

    from random import choice
    
    
    class RandomWalk:
        def __init__(self, num_points=500):
            self.num_points = num_points
    
            self.x_values = [0]
            self.y_values = [0]
    
        def get_step(self):
            direction = choice([1, -1])
            distance = choice([0, 1, 2, 3, 4, 5])
            step = direction * distance
            return step
    
        def fill_walk(self):
            while len(self.x_values) < self.num_points:
                x_step = self.get_step()
                y_step = self.get_step()
    
                if x_step == 0 and y_step == 0:
                    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)

    rw_visual.py

    # coding=utf-8
    import matplotlib.pyplot as plt
    
    from random_walk import RandomWalk
    
    rw = RandomWalk(5000)
    rw.fill_walk()
    
    point_numbers = list(range(rw.num_points))
    #plt.figure(dpi=128, figsize=(10, 6))
    
    plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Reds,
                edgecolors='none', s=10)
    
    #plt.plot(rw.x_values, rw.y_values, c=(0, 0, 0.8), linewidth=1)
    #设置图表标题,并给坐标轴加上标签
    plt.title("Random Walk", fontsize=24)
    plt.xlabel("x_values", fontsize=15)
    plt.ylabel("y_values", fontsize=15)
    #设置刻度标记的大小
    plt.tick_params(axis='both', labelsize=14)
    
    plt.scatter(0, 0, c='green', s=150)
    plt.scatter(rw.x_values[-1], rw.y_values[-1], c='blue', s=150)
    
    #plt.axes().get_xaxis().set_visible(False)
    #plt.axes().get_yaxis().set_visible(False)
    plt.savefig('random_walk.png', bbbox_inches='tight')
    plt.show()
  • 相关阅读:
    软测管理工具实践-01
    Jquery中trim的用法
    java简单学习笔记20190124
    java简单学习笔记20190123
    java简单学习笔记20190122
    java简单学习笔记20190121
    java简单学习笔记20190120
    java简单学习笔记20190114及前
    java简单学习笔记20190115
    java简单学习笔记20190105
  • 原文地址:https://www.cnblogs.com/adamhome/p/12257829.html
Copyright © 2011-2022 走看看