先放图

然后下面的python代码

from matplotlib.patches import *def get_circle(x1, y1, x2, y2, x3, y3):"""根据三个点,返回外接圆的中心和半径:param x1::param y1::param x2::param y2::param x3::param y3::return: x,y,r"""a = x1 - x2b = y1 - y2c = x1 - x3d = y1 - y3a1 = ((x1 * x1 - x2 * x2) + (y1 * y1 - y2 * y2)) / 2.0a2 = ((x1 * x1 - x3 * x3) + (y1 * y1 - y3 * y3)) / 2.0theta = b * c - a * dif abs(theta) < 1e-7:raise ValueError("compute circle error!")x0 = (b * a2 - d * a1) / thetay0 = (c * a1 - a * a2) / thetar = np.sqrt(pow((x1 - x0), 2) + pow((y1 - y0), 2))return x0, y0, rdef add_north(ax, x, y, text_size=15, arrow_width=0.05,text_pad=0.01, arrow_height=None,line_width=1, add_circle=True):"""给子图添加一个指北针,这里的长度,间隔等是0-1之间的小数:param ax: 子图句柄:param x: 指针尖的x坐标[0-1]:param y: 指针尖的y坐标[0-1]:param text_size: N字符大小:param arrow_width: 箭头的宽度:param text_pad: 文字和箭头的间隔:param arrow_height: 箭头的宽度:param line_width: 线条的宽度:param add_circle: 是否添加圆:return: None"""if arrow_height is None:arrow_height = arrow_width * 1.87x_min, x_max = ax.get_xlim()y_min, y_max = ax.get_ylim()width = x_max - x_minheight = y_max - y_minleft = (x_min + width * (x - arrow_width * 0.5), y_min + height * (y - arrow_height))right = (x_min + width * (x + arrow_width * 0.5), left[1])top = (x_min + width * x, y_min + height * y)bottom_center = (top[0], left[1] + 0.27 * (top[1] - left[1]))left_patch = Polygon([left, top, bottom_center], color='k',linewidth=line_width)right_patch = Polygon([bottom_center, top, right],facecolor='none',edgecolor='k', linewidth=line_width)ax.add_patch(left_patch)ax.add_patch(right_patch)if add_circle:circle_x, circle_y, r = get_circle(*top, *left, *right)circle_patch = Circle((circle_x, circle_y), r,facecolor='none',edgecolor='k',linewidth=line_width)ax.add_patch(circle_patch)ax.text(s='N',x=top[0],y=top[1] + text_pad * height,fontsize=text_size,horizontalalignment='center',verticalalignment='bottom')

按照函数签名使用即可

怎么用python画指北针?相关推荐

  1. python画指北针_python如何画出漂亮的地图?

    python如何画出漂亮的地图? 要画一张好看的地图,数据量的多少.底图的支持程度与选择乃至个人的美学素养是一张好看的地图重要的因素.目前python也有很多能够实现地图可视化的包,这里给大家推荐最基 ...

  2. 怎么用python画个电脑_python语言还是java如何用python画爱心

    用python绘制爱心的基本步骤如下: 002pc.com对<python语言还是java如何用python画爱心>总结来说,为我们学习Python很实用. 首先先下载安装好python程 ...

  3. 开学季,教你用Python画大学教室座位神分区图!网友直呼“中枪”

    作者 | 丁彦军 转载自恋习Python(ID:sldata2017) 我们上过大学的朋友们都知道,大学没有固定教室也没有固定的座位,所以大家可以随便找个自己喜欢的位置坐下. 别看这些不起眼的座位,感 ...

  4. 圣诞节!教你用Python画棵圣诞树

    作者 | 糖甜甜甜,985高校经管研二,擅长用 Python.R.tableau 等工具结合统计学和机器学习模型做数据分析. 来源 | 经管人学数据分析(ID:DAT-2017) 如何用Python画 ...

  5. 用python画时序图源代码_使用python实现画AR模型时序图

    背景: 用python画AR模型的时序图. 结果: 代码: import numpy as np import matplotlib.pyplot as plt """ ...

  6. 用python画微信捂脸_用 Python 画一个捂脸表情

    微信中的捂脸表情相信大家都不陌生,我见过以及自己使用这个表情的频率都是比较高的,可以说这个表情算是大部分人的主打表情之一了,本文我使用 Python 来画一下这个表情,我们使用到的库还是 turtle ...

  7. echarts词云图形状_怎么用Python画出好看的词云图?

    相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效应所吸引,这篇文章就教大家怎么用Python画出这种图. 前期准备 上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词以可视化的 ...

  8. 用python画动态樱花_利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白...

    利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白 此处感谢知乎大佬 小白练手 练习一下比较流行的turtle(海龟库) 画一棵漂亮的樱花树,效果如下: ps: 是动态 ...

  9. python绘制月亮_用python画月亮的代码是什么?

    用python画月亮的代码是什么? 用python画月亮的代码是import turtle as t t.screensize(800,600,"#483d8b")#画布尺寸和颜色 ...

最新文章

  1. (转载)KVM is required to run this AVD /dev/kvm permission denied Ubuntu Android Studio
  2. springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程
  3. mybatis mysql crud_Mybatis实现CRUD操作
  4. Windows 2000 Active Directory FSMO 角色
  5. 返回变量内容的错误示例和正确返回的4种方法
  6. Android应用开发-onNewIntent()
  7. nginx 413 Request Entity Too Large
  8. ncverilog脚本_基于脚本和test bench的ncverilog ASIC仿真实例分析
  9. 转:Android ViewPager多页面滑动切换以及动画效果
  10. 可靠性工程基础 修订版 课后答案 (刘品)
  11. CSS 常用苹方字体
  12. c语言 背包算法,c语言背包问题(背包最大容量c语言算法)
  13. image.getSubimage(x, y, width, height)函数解析
  14. 如何做出 胜过 万龙洲海鲜的 双味腊肠芋头煲
  15. mac使用的pd虚拟机window黑屏 ---已解决
  16. UD三分区补充教程1——激活不同分区对于UD三分区bios启动和uefi启动兼容性影响的讨论
  17. 我是新来的请多多关照
  18. 20 WebGL使用纹理贴图
  19. 解决uniapp微信开发小程序背景本地图片渲染层网络层错误问题
  20. 魔兽的服务器和客户机python_怎么自己架设wow私服服务器

热门文章

  1. python国内下载地址_python下载链接
  2. Tesra超算网络AI训练的使用流程
  3. 利用qwinsta和rwinsta察看连接到一个机器的连接数
  4. 网线线序及网线转RS232—— DB9线序
  5. 《指数基金投资指南》读书笔记---行业指数基金
  6. 华为交换机S5700故障系统文件丢失处理
  7. oracle修改数据文件
  8. ES地理范围查询第一讲:Java操作地理位置信息(geo_point)
  9. 51 nod 1024 矩阵中不重复的元素
  10. 用python读取股票基本信息_python-使用pandas datareader获取股票信息