文章目录

  • 问题
  • 代码
  • 结果

问题

按需绘制图像

代码

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绘图初体验相关推荐

  1. 读《Hands-On Transfer Learning with Python》初体验

    读<Hands-On Transfer Learning with Python>初体验 最近由于工作原因及个人兴趣,对迁移学习兴趣盎然,很想深入了解该领域知识,偶得该领域最新力作,现分享 ...

  2. Python数据分析初体验

    一.数据分析三大神器 1.NumPy - Numerical Python - 提供了名为ndarray的数据类型,基于该类型我们可以实现对数据的存储和批量处理. 2.Pandas - Panel D ...

  3. python android开发_Android与Python爱之初体验

    独家授权码个蛋转载 * 前言 看到这个标题,大家可能会认为就是Android运行python脚本,或者用python写app,这些用QPython和P4A就可以实现了.我在想既然C可以调用Python ...

  4. 01 matplotlib绘图初体验

    matplotlib 可以绘制什么图? 前言 一.折线图 1.1 折线图的介绍 1.2 代码及运行结果 二.散点图 2.1 散点图的介绍 2.2 代码及运行结果 三.饼图 3.1 饼图的介绍及使用要求 ...

  5. python:爬虫初体验

    最近帮老妈在58上找保姆的工作,无奈58上的中介服务太多 了,我想找一些私人发布的保姆招聘信息,所以倒腾了一个python的爬虫,将数据爬出来之后通过Excel进行过滤中介,因为代码实在是太简单,这里 ...

  6. python之初体验(一)

    背景:又要做狗血的数据迁移.数据清洗,每次面对此类需求,心里都会把pm祖宗老老小小都问候个遍.解决办法,要么用java写一大堆支撑代码,要么在vm上写蹩脚的shell,都很不爽.最近尝试了下pytho ...

  7. python发红包问题_一个关于红包的问题引发的python算法初体验

    有个初学python的小伙伴,在群里问我关于实现抢红包的算法的问题,于是就有了以下对话 这里,这位同学的思路是这样的: 每次抢到的金额 = 随机区间 ( 0.01, 剩余金额 ) 为什么我这样说呢?我 ...

  8. 学Python的初体验——模块简述

    Python的模块有很多很多,就像纷乱繁杂的API,都分别归属于这些模块,假如我们明白了哪个模块干什么事,能干什么,能做到什么,或者说 -- 理论上作为大众应用如此广泛的它应该能做到什么,那即使我们不 ...

  9. python hdfs初体验

    新建目录 chr 新建文件hdfstest1.txt并写入内容 复制hdfstest1.txt的内容到hdfstest2.txt 转载于:https://www.cnblogs.com/chrran/ ...

最新文章

  1. 2008.09.20三多寨
  2. javascript中break和continue
  3. LVS(11)——wrr
  4. Battlestation Operational HDU 6134
  5. 实验2 SQL Server 表操作
  6. Angular1.63 绑定数据与继承
  7. Ios 12 linux,苹果发布iOS 12.4.1,以修补越狱漏洞
  8. 最常问的Java面试题,有Get吗?
  9. Java-ArrayList使用技巧---从第一个List中去除所有第二个List中与之重复的元素
  10. aj6 stamps storm_曝光! “渣男”Travis Scott的AJ6下周发售,分手后货量大减...
  11. 机器学习实战(三)朴素贝叶斯NB(Naive Bayes)
  12. 如何在win10搜索计算机,如何在win10电脑的任务栏搜索框中添加地址?
  13. 阿里巴巴YunOS加入物联网标准组织ZigBee联盟
  14. 二范数-特征值的意义-矩阵范数-向量范数-
  15. listview添加item动画
  16. linux版Nacos安装、集群配置
  17. oracle为表空间增加数据文件_只读数据文件损坏恢复实验记录
  18. 高负载高并发网站架构分析
  19. 利用ziparchive压缩文件、zip_file解压文件
  20. 6月中国最美的地方!对的时间就要去对的地方!

热门文章

  1. ApiSix配置详解
  2. ALTER ROUTINE
  3. php memcache 同步,php – 使用memcache进行棘轮会话数据同步
  4. 穿搭加分必备单品——包包
  5. webwork入门例子
  6. Linux 命令之 aptitude -- APT 软件包管理工具
  7. 微信小程序的同步异步解决方案
  8. 用户数据分析案例学习笔记
  9. 两个基于二次剩余的公钥加密算法
  10. 学打羽毛球心得(一) --- 预备篇