数据可视化—随机漫步

✅作者简介:大家好我是hacker707,大家可以叫我hacker
📃个人主页:hacker707的csdn博客
🔥系列专栏:python
💬推荐一款模拟面试、刷题神器👉点击跳转进入网站

在这里插入图片描述

随机漫步

  • 创建RandomWalk类
  • 选择方向
  • 绘制随机漫步图
  • 模拟多次随机漫步
  • 给点着色
  • 突出起点和终点
  • 增加点数
  • 调整尺寸以适用屏幕
  • 结束语🏆🏆🏆

创建RandomWalk类

为模拟随机漫步,我们将创建一个RandomWalk类,随机选择前进方向,这个类有三个属性,一个存储随机漫步的次数,另外两个存储随机漫步的每个点的x,y坐标,每次漫步都从点(0,0)出发

from random import choiceclass RandomWalk():'''一个生成随机漫步数据的类'''def __init__(self,num_points=5000):'''初始化随机漫步的属性'''self.num_points = num_points# 所有随机漫步都始于(0,0)self.x_values = [0]self.y_values = [0]

选择方向

我们将使用fill_walk()来生成随机漫步包含的点,并决定每次漫步的方向。并将其添加到random_walk.py中
改正代码如下:

from random import choiceclass RandomWalk():'''一个生成随机漫步数据的类'''def __init__(self, num_points=5000):'''初始化随机漫步的属性'''self.num_points = num_points# 所有随机漫步都始于(0,0)self.x_values = [0]self.y_values = [0]def fill_walk(self):'''计算随机漫步包含的所有点'''# 不断漫步,知道列表到达指定的长度while len(self.x_values) < self.num_points:# 决定前进方向以及沿这个方向前进的距离x_direction = choice([1, -1])x_distance = choice([0, 1, 2, 3, 4])x_step = x_direction * x_distancey_direction = choice([1, -1])y_distance = choice([0, 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_stepnext_y = self.y_values[-1] + y_stepself.x_values.append(next_x)self.y_values.append(next_y)

绘制随机漫步图

下面的代码将随机漫步的所有点都绘制出来,将文件命名为rw_visual.py

import matplotlib.pyplot as pltfrom random_walk import RandomWalk
# 创建一个RandomWalk实例,并将其包含的点都绘制出来
rw = RandomWalk()
rw.fill_walk()
plt.scatter(rw.x_values, rw.y_values, s=10)
plt.show()

模拟多次随机漫步

每次随机漫步都不同,因此每次生成的各种模式也很有趣,要在不多次运行程序的情况下,进行随机漫步,可以把代码放入一个while循环中,每次关闭matplotlib查看器,系统会询问你是否再次模拟随机漫步(输入y将再次进行随机漫步,输入n将结束程序)
改进代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步
while True:# 创建一个RandomWalk实例,并将其包含的点都绘制出来rw = RandomWalk()rw.fill_walk()plt.scatter(rw.x_values, rw.y_values, s=10)plt.show()keep_running = input("make another walk? (y/n):")if keep_running.upper() == 'N':break

每次随机漫步都不同,就如人的一生每走一步都会有不同的经历💖💖💖
在这里插入图片描述

给点着色

使用颜色映射指出漫步中各点的先后顺序,并删除每个点的黑色轮廓,让颜色更明显。将参数c设置为points_numbers,指定使用颜色映射Blues,并传递实参edgecolor=none以删除每个点周围的轮廓,随机漫步图会从浅蓝色渐变到深蓝色,代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步
while True:# 创建一个RandomWalk实例,并将其包含的点都绘制出来rw = RandomWalk()rw.fill_walk()point_numbers = list(range(rw.num_points))plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=10)plt.show()keep_running = input("make another walk? (y/n):")if keep_running.upper() == 'N':break

效果如下:
在这里插入图片描述

突出起点和终点

还可以呈现出随机漫步的起点和终点,我们让起点和终点变得更大,并显示为不同的颜色,代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步
while True:# 创建一个RandomWalk实例,并将其包含的点都绘制出来rw = RandomWalk()rw.fill_walk()point_numbers = list(range(rw.num_points))plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=10)# 突出起点和重点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.upper() == 'N':break

效果如下:
在这里插入图片描述

增加点数

增加点数,以提供更多的数据,我们在创建RandomWalk实例时增大num_points的值,并在绘图时改变每个点的大小,代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步
while True:# 创建一个RandomWalk实例,并将其包含的点都绘制出来rw = RandomWalk(50000)rw.fill_walk()point_numbers = list(range(rw.num_points))plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, 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.upper() == 'N':break

效果如下:

在这里插入图片描述

调整尺寸以适用屏幕

图表适合屏幕大小时,更能有效地将数据中的规律呈现出来。函数figure()用于指定图表的宽度、高度、分辨率和背景色。需要给形参figsize指定一个元组,向matplotlib指出绘图窗口的尺寸(单位为英寸)
如果你知道自己的系统分辨率,可使用形参dpi像figure()传递该分辨率,以有效利用可用的屏幕空间代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步
while True:# 创建一个RandomWalk实例,并将其包含的点都绘制出来rw = RandomWalk(50000)rw.fill_walk()# 设置绘图窗口的大小plt.figure(dpi=128, figsize=(10, 6))point_numbers = list(range(rw.num_points))plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, 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.upper() == 'N':break

运行效果如下图所示

在这里插入图片描述

结束语🏆🏆🏆

🔥推荐一款模拟面试、刷题神器网站
点击跳转进入网站
1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单
2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题
3、大厂笔试真题:字节跳动、美团、百度、腾讯…

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620502.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

City walk火了,这3种城市漫步模式了解一下

目 录 1. 城市需要什么样的City walk 2. City walk模式一&#xff1a;「有目标」 3. City walk模式二&#xff1a;「故事化」 4. City walk模式三&#xff1a;「小而密」 关键词&#xff1a; 城市漫步 | 城市更新 | 街区改造 文化旅游 | 微度假 | 扩内需 City walk&#xff08…

7 集群基本测试

1. 上传小文件到集群 在hadoop路径下执行命令创建一个文件夹用于存放即将上传的文件&#xff1a; [atguiguhadoop102 ~]$ hadoop fs -mkdir /input上传&#xff1a; [atguiguhadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/work.txt /input2.上传大文件 [atguiguhadoop1…

使用OpenCV-python对植物图片进行分类

文章目录 图片分类的思路和需要加载的库函数说明核心代码分析数据预处理&#xff1a;文件处理和命名匹配数据预处理&#xff1a;特征提取和标签提取学习模型&#xff1a;数据划分和模型训练预测输出&#xff1a;利用训练好的模型进行图片分类 完整代码附录和运行结果 图片分类的…

学习记录:Unity点击屏幕生成随机UI花朵

1 效果展示 点击屏幕的位置生成花朵&#xff0c;生成的花朵等5秒后自动销毁。 2 代码展示 1 生成花朵的代码 using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 鼠标点击生成花朵 /// </summary> public clas…

利用Python制造出七彩花朵

文章目录 前言小海龟花朵类移动函数画花朵 前言 来啦来啦来啦&#xff0c;小伙伴们快快来领取七彩花瓣雨吧&#xff01;&#xff01; 小海龟 老生常谈啦&#xff0c;在用python画樱花树前&#xff0c;我们先来了解一下turtle吧&#xff01; 小海龟(Turtle)是Python中画图的…

深度学习花朵识别系统的设计与实现

摘要&#xff1a;该项目是基于Keras的VGG16模型微调实现的深度学习花朵识别检测系统&#xff0c;使用Python语言中的cv2和numpy库对图像进行预处理&#xff0c;使用keras的ImageDataGenerator进行数据增强&#xff0c;采用Pyqt5实现功能的可视化&#xff0c;方便用户对图片进行…

使用Pytorch实现图像花朵分类

基于pytorch-classifier这个源码进行实现的图像分类 代码的介绍在这个链接里面&#xff0c;这篇博客主要是为了带着大家通过实践的方式熟悉一下代码的使用&#xff0c;并且了解相关功能。 1. 下载相关资料 这里我提供了一个花朵数据集&#xff0c;里面总共有十个类别的花朵作…

“花朵分类“ 手把手搭建【卷积神经网络】

前言 本文介绍卷积神经网络的入门案例,通过搭建和训练一个模型,来对几种常见的花朵进行识别分类; 使用到TF的花朵数据集,它包含5类,即:“雏菊”,“蒲公英”,“玫瑰”,“向日葵”,“郁金香”;共 3670 张彩色图片;通过搭建和训练卷积神经网络模型,对图像进行分类,…

(笔记一)利用open_cv在图像上进行点标记,文字注记,画圆、多边形、椭圆

&#xff08;1&#xff09;CV2中的绘图函数&#xff1a; cv2.line() 绘制线条cv2.circle() 绘制圆cv2.rectangle() 绘制矩形cv2.ellipse() 绘制椭圆cv2.putText() 添加注记 &#xff08;2&#xff09;注释 img表示需要绘制的图像color表示线条的颜色&#xff0c;采用颜色矩阵…

桌面图标不显示

问题 桌面图标不显示 解决办法 鼠标 右击->选择-查看->显示桌面图标

今天去看看俺姐(老婆)新开的超市

首发博客地址 https://blog.zysicyj.top/ 1 昨晚写博客到12点多&#xff0c;今天困死了&#xff0c;比较意外的是&#xff0c;早上老爸没有叫我&#xff0c;今天早上是老爸和小舅送的葡萄。 所以呢&#xff0c;今早睡得很晚&#xff0c;然后6点多才醒&#xff0c;睡得真舒服&am…

java恶魔之怒太平洋_熊猫人之怒恶魔降临手游辅助下载_熊猫人之怒恶魔降临修改器安卓版V3.1下载(暂未上线)_预约_飞翔下载...

熊猫人之怒恶魔降临修改器是一款简单好用的安卓游戏修改神器。通过修改正在运行的游戏的内存数据&#xff0c;达到修改游戏中的金钱、血量、得分、道具数量、攻击、防御、魔法等参数值。既简单又实用&#xff0c;让你想怎么改&#xff0c;就怎么改&#xff0c;你的游戏你做主。…

LeetCode-738-单调递增的数字

题目描述&#xff1a; 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 解题思路&#xff1a; 先将int变成char[]&#xff0c;获取…

UG+PRESSCAD五金连续模 成型模 复合模具设计视频教程

UGPRESSCAD五金连续模 成型模 复合模具设计视频教程 链接&#xff1a;https://pan.baidu.com/s/1MEQdf3DkmHAEHYOrP1USBQ 提取码&#xff1a;r9f0

教程 参数设置_UG教程之非切削参数设置

转移/快速 转移/快速指定如何从一个切削刀路移动到另一个切削刀路。通常情况下,刀具需要进行以下3个动作: (1)从其当前位置移动到指定的平面。 (2)移动到指定平面内高于进刀运动起点的位置。 (3)最后,刀具将从指定平面移动到进刀的起始处。 1.安全设置 功能:安全设置用于指…

在 WSL2 中使用 NVIDIA Docker 进行全栈开发和深度学习 TensorFlow pytorch GPU 加速

WSL2使用NVIDIA Docker进行全栈开发和深度学习 1. 前置条件 1.1. 安装系统 Windows 10 版本 2004 及更高版本&#xff08;内部版本 19041 及更高版本&#xff09;或 Windows 11 跳过 1.2. 处理好网络环境 安装过程中需要访问国际网络&#xff0c;自行处理好。建议开启 tu…

UML四大关系

文章目录 引言UML的定义和作用UML四大关系的重要性和应用场景关联关系继承关系聚合关系组合关系 UML四大关系的进一步讨论UML四大关系的实际应用软件开发中的应用其他领域的应用 总结 引言 在软件开发中&#xff0c;统一建模语言&#xff08;Unified Modeling Language&#x…

python+协同过滤算法实现简单的图书推荐系统

背景介绍 当我们做一些推荐系统网站时&#xff0c;通常需要合适的推荐算法&#xff0c;下面给大家介绍推荐系统中经典的推荐算法——协同过滤算法。在本文中通过Python语言&#xff0c;以一个图书推荐系统为案例&#xff0c;最终实现一个基于用户对图书的评分而对指定的用户个…

如何使用腾讯云服务器搭建网站?新手建站教程

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网分享使用腾讯云服务器建站教程&#xff0c;新手站长搭…