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

【1】引言

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

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

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

【2】自主探索

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

相关代码见:

python 复制代码
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() #输出图形

++图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,

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

图2

【5】代码完善

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

复制代码
ax.set_title('polar-scatter-aixmls')

++图3++

【6】总结

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

相关推荐
TDengine (老段)6 小时前
TDengine 数据函数 CORR 用户手册
大数据·数据库·物联网·时序数据库·tdengine·1024程序员节
彩云回16 小时前
多维尺度分析法(MDS)
人工智能·机器学习·1024程序员节
j_xxx404_17 小时前
Linux:权限复盘扩展|粘滞位|软件包管理器|Linux软件生态
linux·1024程序员节
pp-周子晗(努力赶上课程进度版)20 小时前
WebRTC项目架构详解
1024程序员节
Yupureki1 天前
从零开始的C++学习生活 20:数据结构与STL复习课(4.4w字全解析)
c语言·数据结构·c++·学习·visual studio·1024程序员节
Predestination王瀞潞1 天前
Java EE开发技术(第五章:JSP技术)
1024程序员节
AORO20251 天前
三防平板三防是指哪三防?适合应用在什么场景?
服务器·网络·智能手机·电脑·1024程序员节
极客数模1 天前
【浅析赛题,一等奖水平】思路模型数据相关资料!2025 年“大湾区杯”粤港澳金融数学建模竞赛B 题 稳定币的综合评价与发展分析~
大数据·算法·数学建模·金融·数据挖掘·图论·1024程序员节
再睡一夏就好1 天前
【C++闯关笔记】使用红黑树简单模拟实现map与set
java·c语言·数据结构·c++·笔记·语法·1024程序员节
TDengine (老段)1 天前
益和热力性能优化实践:从 SQL Server 到 TDengine 时序数据库,写入快 20 秒、查询提速 5 倍
大数据·数据库·物联网·性能优化·时序数据库·tdengine·1024程序员节