python 脚本 ---坐标排序连线
来源:互联网 发布:黑帽seo网页劫持 编辑:程序博客网 时间:2024/06/05 02:31
最近在做毕设,用到python写程序,平时也写一些脚本作为练习。今天遇到一个问题,就是把一系列的坐标数据显示出来并且在最外围按点连成线(坐标是无序的),在这里放上代码,写的很丑。希望各位大神批评指正。不胜感激!
import matplotlib.pyplot as plt #引入绘图模块x=[3,2,5,-8,-3,-4,-5,4,8,3,12,-5,-6,-8]y=[-11,-8,6,4,8,6,7,8,21,-3,-5,-32,-15,-40]#随机给一些点,这里可以是向量,或者其他值z=[]for i in range(len(x)):z.append([x[i],y[i]])#把x,y坐标点合并,不用zip是因为 zip的结果是tuple,不利于后面的排序,这里需要返回二维的listx1=[]x2=[]x3=[]x4=[]for i in range(len(z)):if z[i][0]>0 and z[i][1]>0:x1.append(z[i])elif z[i][0]<0 and z[i][1]>0:x2.append(z[i])elif z[i][0]<0 and z[i][1]<0:x3.append(z[i])elif z[i][0]>0 and z[i][1]<0:x4.append(z[i])#把坐标点按照四个象限分开存储。如果一开始不是坐标值而是角度或者弧度(如x=[30,60,120..]),这一步#就可以省略了xx=[]x1.sort(key=lambda x:(x[1]/x[0]))x2.sort(key=lambda x:(x[1]/x[0]))x3.sort(key=lambda x:(x[1]/x[0]))x4.sort(key=lambda x:(x[1]/x[0]))#依次排序,一开始是想用向量内积的方式得到余弦值在通过反余弦函数求得角度排序,后来发现这样更麻烦#实际上 x[1]/x[0] 也可以认为是正切函数值了 2333xx=x1+x2+x3+x4u=[]v=[]for i in range(len(xx)):u.append(xx[i][0])v.append(xx[i][1])#把 x y再次分开存储。目的是后面作图传递参数方便(也可以不用,只是参数传递不好看)u.append(u[0])v.append(v[0])#在结尾追加第一个坐标值,这样线就闭合了#后面的代码就是画图了。。。。。fig=plt.figure(figsize=(4,4))ax=fig.add_subplot(111)ax.spines['top'].set_color('none')ax.spines['right'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.spines['bottom'].set_position(('data',0))#ax.xaxis.set_ticks_position('left')#这一步不注视就要报错,哪位大神能不能解释一下啊ax.spines['left'].set_position(('data',0))plt.plot(u,v)plt.scatter(u,v)plt.show()
效果如下图所示:
阅读全文
1 0
- python 脚本 ---坐标排序连线
- python脚本交换要素XY坐标
- 【排序】连线游戏
- python之简单的处理坐标排序问题
- 鼠标定坐标连线画图(面向对象)
- 获取鼠标坐标脚本
- Python+OpenCV--图像特征匹配连线
- 字段计算器通过python脚本完成要素节点坐标信息提取到属性字段中
- 字段计算器通过python脚本完成要素节点坐标信息提取到属性字段中
- 坐标点排序问题
- 多点坐标排序算法
- sort 对坐标 排序
- 坐标点排序
- 四边形坐标顺时针排序
- 二维坐标排序
- 脚本如何得到鼠标坐标
- 脚本如何得到鼠标坐标
- Python脚本测试---列表的排序和删除
- View 与ViewGroup的测量与绘制
- Python自带IDLE编译器如何实现清屏
- springMvc框架的搭建
- Web项目通过Servlet3.0完成文件上传
- Unity标准着色器(Standard Shader)参数讲解(一)
- python 脚本 ---坐标排序连线
- 关于mvc+EF对学生成绩表的客户端视图优化代码
- Appium基础篇15-模拟手指点击tap方法
- 第1章 软件工程之概述
- sudo-为普通用户提权
- 1433 0和5
- Java并发编程实战读书笔记(一)
- linux中通用GPIO接口的操作--文件IO方式
- js:数组重排序问题:如何使用sort()方法按数值的大小进行升序或降序排列