Python绘图初体验
文章目录
- 问题
- 代码
- 结果
问题
按需绘制图像
代码
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.animation import FuncAnimationfig = plt.figure(figsize=(30, 10))
ax = fig.add_subplot(1, 1, 1)x_min, x_max, y_min, y_max = -3, 23, -5, 5
plt.xlim((x_min, x_max))
plt.ylim((y_min, y_max))x_ticks = np.linspace(x_min, x_max, x_max - x_min + 1)
plt.xticks(x_ticks)
y_ticks = np.linspace(y_min, y_max, y_max - y_min + 1)
plt.yticks(y_ticks)plt.grid()
ax.set_aspect('equal', adjustable='box')def get_circle(x, y, radius, alpha, beta, granularity=100):"""根据圆的参数方程,获取角度区间为[alpha,beta]的弧的直角坐标系坐标x,y:param x:圆心横坐标:param y:圆心纵坐标:param radius:圆的半径:param alpha:弧的起始角度:param beta:弧的终点角度:param granularity:粒度,坐标数量:return:x坐标,y坐标"""degree = np.linspace(alpha, beta, granularity)x_coordinate = radius * np.cos(degree) + xy_coordinate = radius * np.sin(degree) + yreturn x_coordinate, y_coordinate# point a
xa1, ya1 = get_circle(1.5, 0.5, 1.6, np.pi - np.pi * 24 / 225, -np.pi * 24 / 225, 100)
xa2, ya2 = list(np.linspace(3, 19, 200)), [0] * 200
xa3, ya3 = get_circle(17.5, 0.5, 1.6, -np.pi * 24 / 225, np.pi - np.pi * 24 / 225, 100)
xa = list(xa1) + list(xa2) + list(xa3)
ya = list(ya1) + list(ya2) + list(ya3)
# point b
xb1, yb1 = get_circle(2, - 0.5, 2.05, -np.pi + np.pi * 8 / 90, np.pi * 8 / 90, 100)
xb2, yb2 = list(np.linspace(4, 20, 200)), [0] * 200
xb3, yb3 = get_circle(18, - 0.5, 2.05, np.pi * 8 / 90, -np.pi + np.pi * 8 / 90, 100)
xb = list(xb1) + list(xb2) + list(xb3)
yb = list(yb1) + list(yb2) + list(yb3)
# point c
xc1 = np.linspace(-1, 5, 100)
yc1 = [0] * len(xc1)
xc2 = list(xc1) + list(np.linspace(5, 21, 200))
yc2 = list(yc1) + [0] * 200
xc = list(xc2) + list(np.linspace(21, 21 - 6, 100))
yc = list(yc2) + [0] * 100line1, = ax.plot(xa, ya, '.', color='g')
line2, = ax.plot(xb, yb, '.', color='b')
line3, = ax.plot(xc, yc, '.', color='r')x_list = list(np.linspace(6, 14, 100))
y_list1 = [0.5] * 100
plt.plot(x_list, y_list1, 'black')
y_list2 = [-0.5] * 100
plt.plot(x_list, y_list2, 'black')def init():# plt.pause(1)return line1, line2, line3,def update(num):"""绘制路径:param num::return:"""line1.set_data(xa[:num], ya[:num])line2.set_data(xb[:num], yb[:num])line3.set_data(xc[:num], yc[:num])return line1, line2, line3# def update(num):
# """
# 绘制点
# :param num:
# :return:
# """
# line1.set_data(xa[num - 1:num], ya[num - 1:num])
# line2.set_data(xb[num - 1:num], yb[num - 1:num])
# line3.set_data(xc[num - 1:num], yc[num - 1:num])
# return line1, line2, line3ani = FuncAnimation(fig, update, init_func=init, frames=len(xa), interval=25, blit=False, repeat=False# , repeat_delay=1000)ani.save("3.gif", fps=60, writer="imagemagick")
# ani.save("3-point.gif", fps=60, writer="imagemagick")
plt.show()
结果
Python绘图初体验相关推荐
- 读《Hands-On Transfer Learning with Python》初体验
读<Hands-On Transfer Learning with Python>初体验 最近由于工作原因及个人兴趣,对迁移学习兴趣盎然,很想深入了解该领域知识,偶得该领域最新力作,现分享 ...
- Python数据分析初体验
一.数据分析三大神器 1.NumPy - Numerical Python - 提供了名为ndarray的数据类型,基于该类型我们可以实现对数据的存储和批量处理. 2.Pandas - Panel D ...
- python android开发_Android与Python爱之初体验
独家授权码个蛋转载 * 前言 看到这个标题,大家可能会认为就是Android运行python脚本,或者用python写app,这些用QPython和P4A就可以实现了.我在想既然C可以调用Python ...
- 01 matplotlib绘图初体验
matplotlib 可以绘制什么图? 前言 一.折线图 1.1 折线图的介绍 1.2 代码及运行结果 二.散点图 2.1 散点图的介绍 2.2 代码及运行结果 三.饼图 3.1 饼图的介绍及使用要求 ...
- python:爬虫初体验
最近帮老妈在58上找保姆的工作,无奈58上的中介服务太多 了,我想找一些私人发布的保姆招聘信息,所以倒腾了一个python的爬虫,将数据爬出来之后通过Excel进行过滤中介,因为代码实在是太简单,这里 ...
- python之初体验(一)
背景:又要做狗血的数据迁移.数据清洗,每次面对此类需求,心里都会把pm祖宗老老小小都问候个遍.解决办法,要么用java写一大堆支撑代码,要么在vm上写蹩脚的shell,都很不爽.最近尝试了下pytho ...
- python发红包问题_一个关于红包的问题引发的python算法初体验
有个初学python的小伙伴,在群里问我关于实现抢红包的算法的问题,于是就有了以下对话 这里,这位同学的思路是这样的: 每次抢到的金额 = 随机区间 ( 0.01, 剩余金额 ) 为什么我这样说呢?我 ...
- 学Python的初体验——模块简述
Python的模块有很多很多,就像纷乱繁杂的API,都分别归属于这些模块,假如我们明白了哪个模块干什么事,能干什么,能做到什么,或者说 -- 理论上作为大众应用如此广泛的它应该能做到什么,那即使我们不 ...
- python hdfs初体验
新建目录 chr 新建文件hdfstest1.txt并写入内容 复制hdfstest1.txt的内容到hdfstest2.txt 转载于:https://www.cnblogs.com/chrran/ ...
最新文章
- 2008.09.20三多寨
- javascript中break和continue
- LVS(11)——wrr
- Battlestation Operational HDU 6134
- 实验2 SQL Server 表操作
- Angular1.63 绑定数据与继承
- Ios 12 linux,苹果发布iOS 12.4.1,以修补越狱漏洞
- 最常问的Java面试题,有Get吗?
- Java-ArrayList使用技巧---从第一个List中去除所有第二个List中与之重复的元素
- aj6 stamps storm_曝光! “渣男”Travis Scott的AJ6下周发售,分手后货量大减...
- 机器学习实战(三)朴素贝叶斯NB(Naive Bayes)
- 如何在win10搜索计算机,如何在win10电脑的任务栏搜索框中添加地址?
- 阿里巴巴YunOS加入物联网标准组织ZigBee联盟
- 二范数-特征值的意义-矩阵范数-向量范数-
- listview添加item动画
- linux版Nacos安装、集群配置
- oracle为表空间增加数据文件_只读数据文件损坏恢复实验记录
- 高负载高并发网站架构分析
- 利用ziparchive压缩文件、zip_file解压文件
- 6月中国最美的地方!对的时间就要去对的地方!