当前位置: 首页 > news >正文

Python画图|极坐标下的散点图动态输出

【1】引言

前序已经学习过散点图输出和极坐标图输出,文章链接包括但不限于下述部分:

python画散点图|scatter()函数小试牛刀(入门级教程)_python ax.scatter-CSDN博客

python画图|极坐标中画散点图_极坐标上的散点图-CSDN博客

【2】自主探索

在此基础上,我自主探索了极坐标下的散点图输出。

相关代码见:

import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块import matplotlib.animation as animation #引入动画模块fig = plt.figure() #定义要画图
ax = fig.add_subplot(projection='polar') #定义要画极坐标图
#ax.set_xlim([0, 10])scatters = ax.scatter(0, 2,5) #定义初始散点
x = np.linspace(0, 10,100) #定义自变量def animate(i): #自定义动画函数ax.scatter(x[i], x[i]**2, 12*x[i]) #极坐标中的散点的坐标点(x[i], x[i]**2),散点大小12*x[i]return scatters,ani = animation.FuncAnimation(fig, animate) #输出动画# To save the animation using Pillow as a gif
# writer = animation.PillowWriter(fps=15,
#                                 metadata=dict(artist='Me'),
#                                 bitrate=1800)
ani.save('polar-scatter.gif') #保存动画plt.show() #输出图形

a4c0528892914d50ace08d622d4388be.gif

图1

【3】代码解读

具体的代码书写步骤为:

首先引入画图、计算和动画模块:

import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块import matplotlib.animation as animation #引入动画模块

然后定义画图,确认画极坐标图:

fig = plt.figure() #定义要画图
ax = fig.add_subplot(projection='polar') #定义要画极坐标图

之后给出初始散点和自变量:

scatters = ax.scatter(0, 2,5) #定义初始散点
x = np.linspace(0, 10,60) #定义自变量

然后定义一个动画函数:

def animate(i): #自定义动画函数ax.scatter(x[i], x[i]**2, 120*x[i],cmap='blues_r') #极坐标中的散点的坐标点(x[i], x[i]**2),散点大小12*x[i]return scatters,

最后调用动画模块输出图形:

ani = animation.FuncAnimation(fig, animate) #输出动画# To save the animation using Pillow as a gif
# writer = animation.PillowWriter(fps=15,
#                                 metadata=dict(artist='Me'),
#                                 bitrate=1800)
ani.save('polar-scatter.gif') #保存动画plt.show() #输出图形

【4】代码优化

由于极坐标下,一个完整的圆周对应角度是360度即2π,因此将自变量的值设置为[0,6.28]即可:

x = np.linspace(0, 6.28,100) #定义自变量

然后为了多输出几个图形,定义动画函数为:

def animate(i): #自定义动画函数ax.scatter(x[i],np.cos(x[i])) #弦长输出余弦ax.scatter(x[i], np.sin(x[i])) #弦长输出正弦ax.scatter(x[i],-np.cos(x[i])) #弦长输出余弦取负值return scatters,

此时运行代码的输出图像为:

8ba0fe39c74c41a583dcefee3934ab44.gif

图2

【5】代码完善

给极坐标的动图增加一个图名:

ax.set_title('polar-scatter-aixmls')

6d0dd619f020470ab3614fa0d6a3e7d3.gif

图3

【6】总结

自主探索了极坐标散点动图绘制技巧。

 

 

 

 

 

相关文章:

Python画图|极坐标下的散点图动态输出

【1】引言 前序已经学习过散点图输出和极坐标图输出,文章链接包括但不限于下述部分: python画散点图|scatter()函数小试牛刀(入门级教程)_python ax.scatter-CSDN博客 python画图|极坐标中画散点图_极坐标上的散点图-CSDN博客 …...

揭开MySQL并发中的“死锁”之谜:从原理到解决方案的深度解析

目录 1. 环境准备:创建“账户”和“标记”表1.1 创建 dl_account_t 表1.2 创建 dl_mark_t 表 2. 死锁详解2.1 死锁情景一:相反加锁顺序导致的死锁2.2 死锁情景二:唯一索引冲突引发的死锁 3. 事务隔离级别与锁机制4. 预防与解决死锁的方法4.1 …...

【论文阅读】Reliable, Adaptable, and Attributable Language Models with Retrieval

文章目录 OverviewCurrent Retrieval-Augmented LMsArchitectureTraining Limitations & Future Work Overview Parametic language models的缺点: 事实性错误的普遍存在验证的难度(可溯源性差)难以在有顾虑的情况下排除某些序列适应调整…...

A-Frame负责人Diego Marcos分享WebXR与开源AI的未来

一、引言 在最近的一次播客访谈中,《虚拟现实之声》的主持人Kent Bye与A-Frame的创始人Diego Marcos展开了一场关于WebXR技术及其未来发展潜力的对话。Diego不仅是A-Frame的创始人,同时也是WebXR规范的原创者之一。本次访谈不仅回顾了WebXR的发展历程,还探讨了开源AI技术在…...

【STM32-HAL库】火焰传感器(STM32F407ZGT6)(附带工程下载链接)

一、TEMT6000光照强度传感器 火焰传感器是一种能够检测火焰的传感器,它通过检测空气中的特定波长的光线来检测火焰的存在,并输出一个信号来通知系统发生了火灾 工作原理 火焰传感器的工作原理基于光学检测技术。当火焰燃烧时,会产生一些特…...

git merge没有生成合并提交

有时候本地使用gitmerge命令的时候会发现,合并后的log里边并没有一次merge branch的log,而是把合并分支上的所有commit log都带过来。 这是因为当执行合并操作时,如果目标分支的提交历史是源分支的直接延续(即,目标分支…...

算法题总结(十九)——图论

图论 DFS框架 void dfs(参数) { if (终止条件) {存放结果;return; }for (选择:本节点所连接的其他节点) {处理节点;dfs(图,选择的节点); // 递归回溯,撤销处理结果 } }深搜三部曲 确认递归函数,参数确认终止条件处理目前搜索节…...

android studio编译错误提示无法下载仓库

一、调整方法之一 buildscript {repositories {google()jcenter()//maven { url https://maven.aliyun.com/repository/google }//maven { url https://maven.aliyun.com/repository/central }}dependencies {// classpath "com.android.tools.build:gradle:4.1.1"c…...

基于SpringBoot的时装购物系统【源码】+【论文】

时装购物系统是一个基于Springboot框架开发的Web应用系统,数据库使用的是MySQL。该系统充分考虑了代码的可读性、实用性、扩展性和通用性,页面设计简洁、操作方便,易于后期维护。系统分为管理员和用户两大角色,前台页面提供了商品…...

自动化结账测试:使用 Playwright确保电商支付流程的无缝体验【nodejs]

使用 Playwright 掌握端到端结账测试 在电商领域,结账流程是用户体验中至关重要的一环。确保这一流程的稳定性和可靠性对于维护客户满意度和转化率至关重要。在本文中,我们将探讨如何使用 Playwright 进行端到端的结账测试,确保您的结账系统…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-25

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-25 0. 前言 大语言模型在很多领域都有成功的应用,在本期计算机前沿技术进展研究介绍中,我们将带来一篇用大语言模型进行诺贝尔文学作品分析的论文。虽然有一定趁最近诺贝尔奖热潮的意味&…...

【读书笔记-《网络是怎样连接的》- 5】Chapter2_4-网卡的工作过程

IP模块组装好的数据包,就可以交给网卡进行发送了。本篇就来介绍网卡在发送数据包时的工作过程。 1 以太网基础 以太网是一种为多台计算机能够彼此自由和廉价地相互通信而设计的通信技术,原型如下图所示。这种网络的本质其实是一根网线,通过…...

qt QOperatingSystemVersion详解

QOperatingSystemVersion 是 Qt 提供的一个类,用于表示和管理操作系统的版本信息。它允许开发者获取操作系统的名称、版本号和平台信息。这个类对于需要根据操作系统版本执行特定操作的应用程序尤其有用。 1. 构造函数 QOperatingSystemVersion(): 默认构造函数&…...

openpnp - 解决“底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题“

文章目录 openpnp - 解决"底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题"概述笔记问题现象1问题现象2原因分析现在底部相机和吸嘴的位置偏差记录修正底部相机位置现在再看看NT1在底部相机中的位置开机归零,看看是否能通过所有校…...

Python字幕滚动:为视频添加专业级动态效果!

Python实现由下向上滚动字幕 在数字媒体和编程领域,动态文本效果总能吸引观众的注意力。其中,滚动字幕是一种常见的视觉效果,经常用于视频、演示文稿和网页中。在Python中,我们可以通过多种方式来实现滚动字幕效果,比…...

Linux 系统中,将网络配置从 DHCP 改为静态 IP的几种方法

Linux 系统中,将网络配置从 DHCP 改为静态 IP 可以通过几种不同的方法来实现,下面是几种常见的方式: 方法一:使用 connman(Connection Manager) 如果你已经在使用 connman 管理网络,可以通过修…...

【jellyfin】解决Edge 浏览器播放 jellyfin 的 hevc/h265 视频“该客户端与媒体不兼容,服务器未发送兼容的媒体格式”错误

文章目录 问题原因分析解决方法 问题 在 windows 系统自带的 Edge 浏览器里网页播放 jellyfin 媒体库里的 hevc/h265 编码的视频时,总是提示 该客户端与媒体不兼容,服务器未发送兼容的媒体格式,无法播放视频。 原因分析 Edge 浏览器默认不…...

企业管理系统设计思路——毕业论文设计

根据企业对人事管理的要求,本系统可以实现以下目标: l 操作简单方便、界面简洁美观。 l 在查看员工信息时,可以对当前员工的家庭情况、培训情况进行添加、修改、删除的操作。 l 方便快捷的全方位数据查询。 l 按照指定的条件对员工进行统…...

Android 默认去掉URL网络校验,设置不进行网络校验

Android 系统连接WIFI显示网络连接受限分析处理_安卓13类原生系统网络受限-CSDN博客 package\modules\NetworkStack\src\com\android\networkstack\util\NetworkStackUtils.java public static final String CAPTIVE_PORTAL_MODE "captive_portal_mode"; //0 不…...

Python | Leetcode Python题解之第515题在每个树行中找最大值

题目: 题解: class Solution:def largestValues(self, root: Optional[TreeNode]) -> List[int]:if root is None:return []ans []q [root]while q:maxVal -inftmp qq []for node in tmp:maxVal max(maxVal, node.val)if node.left:q.append(n…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...