matplotlib入门(三)----散点图与随机漫步


一、散点图

scatter()函数用于绘制一个点,它的基本用法同plot()差不多,示例如下:

示例1:

简单示例

#绘制一个点
import matplotlib.pyplot as plt
plt.scatter(2,4)
plt.show()

#绘制多个点,注意scatter()不能省略x轴参数
import matplotlib.pyplot as plt
x = [0,1,2,3,4]
y = [0,1,4,9,16]
plt.scatter(x,y,s=100) #参数s用于设置点的尺寸大小
plt.show()

示例2:

import matplotlib.pyplot as plt
x = list(range(1,1001))
y = [i**2 for i in x]
plt.scatter(x,y,s=1)
plt.axis([0,1100,0,1100000])
plt.show()

结果:
在这里插入图片描述

可以看到当点较多时它们将粘连为一条肉眼无法区分的曲线。


示例3:

生成随机点

import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
plt.scatter(x,y,s=10,c='r')
plt.show()

结果:
在这里插入图片描述

二、颜色映射

颜色映射colormap)是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色映射可用于突出数据的规律,使其可视性更强。

示例:

import matplotlib.pyplot as plt
x = list(range(1,1001))
y = [i**2 for i in x]
plt.scatter(x,y,s=1,c=y,cmap=plt.cm.Reds)
plt.axis([0,1100,0,1100000])
plt.show()

结果:
在这里插入图片描述

在示例中,我们将参数c设置为一个颜色列表,并使用cmap参数设置颜色映射,该颜色映射将会一一对应于颜色列表的每一个值上。
至于cmap参数的所有可选值,参照下面官方文档:
https://matplotlib.org/gallery/color/colormap_reference.html#sphx-glr-gallery-color-colormap-reference-py

三、随机漫步

随机漫步也叫随机游走,它的概念接近于布朗运动,是布朗运动的理想数学状态。随机漫步将得到一条随机路径,但这条路径里的每一次决策都是完全随机的,接下来用Python来模拟随机漫步。

为模拟随机漫步,我们将创建一个RandomWalk()类,它将模拟随机漫步的每一次随机决策。

RandomWalk()类(命名为rand_walk模块):

from random import choice
class RandomWalk():
    def __init__(self,max_points=5000):
        self.max_points = max_points
        self.x_values = [0]
        self.y_values = [0]
    def fill_walk(self):
        #随机漫步点不达到5000个不结束循环
        while len(self.x_values) < self.max_points:
            x_direction = choice([1,-1])#x轴方向随机选择向左还是向右
            x_distance = choice(range(5))
            x_step = x_direction * x_distance
            
            y_direction = choice([1,-1])#y轴方向随机选择向上还是向下
            y_distance = choice(range(5))
            y_step = y_direction * y_distance
            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)

随机漫步示例1:

import matplotlib.pyplot as plt
from rand_walk import RandomWalk
rw = RandomWalk()
rw.fill_walk()
plt.scatter(rw.x_values,rw.y_values,s=5,c='r')
plt.show()

结果:
在这里插入图片描述


随机漫步示例2:

添加colormap版。

import matplotlib.pyplot as plt
from rand_walk import RandomWalk
rw = RandomWalk()
rw.fill_walk()
points_num = list(range(rw.max_points))
#edgecolor 即点轮廓颜色属性,设为None
plt.scatter(rw.x_values,rw.y_values,s=5,c=points_num,cmap=plt.cm.Reds,edgecolor='None')
plt.show()

结果:
在这里插入图片描述

colormap呈现了点的先后顺序。


随机漫步示例3:

突出起点和终点并隐藏坐标轴。

import matplotlib.pyplot as plt
from rand_walk import RandomWalk
rw = RandomWalk()
rw.fill_walk()
points_num = list(range(rw.max_points))
plt.scatter(rw.x_values,rw.y_values,s=5,c=points_num,cmap=plt.cm.Reds,edgecolor='None')
#突出起始点与终止点
plt.scatter(0,0,c='black',s=10)
plt.scatter(rw.x_values[-1],rw.y_values[-1],c='blue',s=10)
#隐藏坐标轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
plt.show()

结果:
在这里插入图片描述

随机漫步示例4:

更多的决策点

在这里插入图片描述

回顾:

本篇提及的一些方法与知识

flt.scatter() #绘制一个点

flt.axis([x_min,x_max,y_min,y_max]) #设置坐标轴范围

edgecolor #点的轮廓颜色属性

颜色映射 cmap参数 plt.cm.Reds

随机漫步 RandomWalk类

plt.axes().get_xaxis().set_visible(False) #隐藏坐标轴
plt.axis('off') #不显示坐标轴
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值