文章目录

  • 问题
  • 代码
  • 结果

问题

按需绘制图像

代码

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. airflow sql_alchemy_conn mysql_airflow的安装和使用 - 完全版
  2. es修改排序_java 如何实现ElasticSearch自定义排序
  3. 几个OpenSource的源代码管理软件
  4. 获取/设置IFRAME内对象元素的几种JS方法
  5. Ajax解析JSON文件
  6. c mysql安装教程视频_MySQL安装教程 - Windows安装MySQL教程 - 小白式安装MySQL教程 - 青衫慧博客...
  7. tl wn322g linux驱动下载,怎样才能装好tl_wn322G+V2.0版USB无线网卡的Linux驱动
  8. [Python] Marshmallow QuickStart
  9. linux set命令例子,学习一个 Linux 命令:declare/typeset 命令
  10. yum仓库中源的配置与使用
  11. 如何备份光猫html文件夹,华为光猫分区备份,还原,制作固件教程
  12. mac关闭虚拟内存_为什么不应该关闭Mac上的虚拟内存
  13. 因为计算机丢失user32.dll,电脑丢失USER32.dll怎么处理
  14. 小程序 选择地区(地区选择器)
  15. url的转换与重定向
  16. Matplotlib_Study01
  17. USACO Training Section 1.3 Calf Flac 解题报告AC代码
  18. 如何开发一个用户脚本系列(5)——脚本三:网易云课堂下载助手
  19. html scale属性,scale() | CSS属性参考
  20. 知识图谱在金融领域的应用

热门文章

  1. ViewBag的使用方法
  2. AngularJS 中的Promise --- $q服务详解
  3. VHDL数据取反操作
  4. Robert算子、Sobel算子、拉普拉斯算子
  5. java 案例 吃货联盟
  6. 使用WampServer搭建php开发环境
  7. [转载]面试官你也伤不起啊!
  8. 牛题:等边三角形内接圆上一点到三顶点距离平方和不变
  9. linux创建设备 mknod,linux用mknod创建设备(节点)
  10. linux上报错xxxxxxx.jar中没有主清单属性