1. 数据是json格式

2. 函数功能:
给出5个顶点,画出边界,画图展示给定的散点是不是在由这5个顶点构成的多边形图形内。给出了两种代码,未注释的是优化后的代码,注释的是优化前的代码.

3. 代码结果展示

4. 代码展示:优化后的代码

import json
import matplotlib.pyplot as plt# json数据的读取
def read_from_file(path):with open(path, "r") as f:point_info = json.load(f)  # 数据读取coordinate_list=[] #建立列表,每一个主键对应的坐标作为一个整体,加入这个列表for key_info in point_info.values():temp = resolution(key_info)coordinate_list.append(temp)return coordinate_listdef resolution(keys_value):#把一个主键的点存储到列表coordinate = [[],[]]for key_value in keys_value.values():coordinate[0].append(key_value['x'])coordinate[1].append(key_value['y'])return coordinatedef plot(path):coordinate_list=read_from_file(path)print(coordinate_list[1])coordinate_list[1][0].append(coordinate_list[1][0][0])coordinate_list[1][1].append(coordinate_list[1][1][0])print(coordinate_list[1])plt.scatter(coordinate_list[0][0], coordinate_list[0][1], c='red', edgecolors='none', s=20) #散点图plt.plot(coordinate_list[1][0], coordinate_list[1][1], color='b') #边界图#显示坐标值for a, b in zip(coordinate_list[1][0], coordinate_list[1][1]):plt.text(a, b, (a, b))plt.show()if __name__ == "__main__":data = r"D:\Pythoncode\20plot\point_and_polygon.json"# info = read_from_file(data)info=plot(data)

5. 未优化之前的代码

# import json
# import matplotlib.pyplot as plt
# #json数据的读取
# def read_from_file(path):
#     with open(path, "r") as f:
#         point_info = json.load(f)#数据读取
#
#         scatter=point_info['generated_points']#获取散点坐标
#         scatter_point_x=[];
#         scatter_point_y =[];
#         for keyv in scatter.values():
#             scatter_point_x.append(keyv['x'])
#             scatter_point_y.append(keyv['y'])
#
#         polygon_point=point_info['polygon']  #获取多边形点的做标
#         polygon_point_x = [];
#         polygon_point_y = [];
#         for keyvs in polygon_point.values():
#             polygon_point_x.append(keyvs['x'])
#             polygon_point_y.append(keyvs['y'])
#         # print(polygon_point_x)
#         # print(polygon_point_y)
#     return scatter_point_x,scatter_point_y, polygon_point_x, polygon_point_y
#
#
# def plot(path):
#     x1,y1,x2,y2 = read_from_file(data)
#     x2.append(x2[0])
#     y2.append(y2[0])
#     plt.scatter(x1, y1, c='red', edgecolors='none', s=20)
#
#     plt.plot(x2, y2, color='b')
#     # #显示坐标值
#     # for a, b in zip(x2, y2):
#     #     plt.text(a, b, (a, b))
#
#     plt.show()
#     print(x2)
#     print(y2)
#
#
#
# if __name__=="__main__":
#     data=r"D:\Pythoncode\20plot\point_and_polygon(2).json"
#     info=plot(data)

6、用到的json数据

{"generated_points" : {"0" : {"x" : -1.0,"y" : 1.75},"1" : {"x" : -1.0,"y" : 1.4000000000000004},"10" : {"x" : -0.20000000000000007,"y" : 1.0500000000000003},"11" : {"x" : -0.20000000000000007,"y" : 0.70000000000000018},"12" : {"x" : 0.59999999999999987,"y" : 2.7999999999999998},"13" : {"x" : 0.59999999999999987,"y" : 2.4500000000000002},"14" : {"x" : 0.59999999999999987,"y" : 2.1000000000000001},"15" : {"x" : 0.59999999999999987,"y" : 1.75},"16" : {"x" : 0.59999999999999987,"y" : 1.4000000000000004},"17" : {"x" : 0.59999999999999987,"y" : 1.0500000000000003},"18" : {"x" : 0.59999999999999987,"y" : 0.70000000000000018},"19" : {"x" : 0.59999999999999987,"y" : 0.35000000000000009},"2" : {"x" : -1.0,"y" : 1.0500000000000003},"20" : {"x" : 1.3999999999999999,"y" : 3.1499999999999999},"21" : {"x" : 1.3999999999999999,"y" : 2.7999999999999998},"22" : {"x" : 1.3999999999999999,"y" : 2.4500000000000002},"23" : {"x" : 1.3999999999999999,"y" : 2.1000000000000001},"24" : {"x" : 1.3999999999999999,"y" : 1.75},"25" : {"x" : 1.3999999999999999,"y" : 1.4000000000000004},"26" : {"x" : 1.3999999999999999,"y" : 1.0500000000000003},"27" : {"x" : 1.3999999999999999,"y" : 0.70000000000000018},"28" : {"x" : 1.3999999999999999,"y" : 0.35000000000000009},"29" : {"x" : 2.1999999999999997,"y" : 3.1499999999999999},"3" : {"x" : -1.0,"y" : 0.70000000000000018},"30" : {"x" : 2.1999999999999997,"y" : 2.7999999999999998},"31" : {"x" : 2.1999999999999997,"y" : 2.4500000000000002},"32" : {"x" : 2.1999999999999997,"y" : 2.1000000000000001},"33" : {"x" : 2.1999999999999997,"y" : 1.75},"34" : {"x" : 2.1999999999999997,"y" : 1.4000000000000004},"35" : {"x" : 2.1999999999999997,"y" : 1.0500000000000003},"36" : {"x" : 2.1999999999999997,"y" : 0.70000000000000018},"37" : {"x" : 2.1999999999999997,"y" : 0.35000000000000009},"38" : {"x" : 2.9999999999999996,"y" : 3.1499999999999999},"39" : {"x" : 2.9999999999999996,"y" : 2.7999999999999998},"4" : {"x" : -1.0,"y" : 0.35000000000000009},"40" : {"x" : 2.9999999999999996,"y" : 2.4500000000000002},"41" : {"x" : 2.9999999999999996,"y" : 2.1000000000000001},"42" : {"x" : 2.9999999999999996,"y" : 1.75},"43" : {"x" : 2.9999999999999996,"y" : 1.4000000000000004},"44" : {"x" : 2.9999999999999996,"y" : 1.0500000000000003},"45" : {"x" : 2.9999999999999996,"y" : 0.70000000000000018},"46" : {"x" : 2.9999999999999996,"y" : 0.35000000000000009},"47" : {"x" : 3.7999999999999998,"y" : 2.7999999999999998},"48" : {"x" : 3.7999999999999998,"y" : 2.4500000000000002},"49" : {"x" : 3.7999999999999998,"y" : 2.1000000000000001},"5" : {"x" : -1.0,"y" : 0.0},"50" : {"x" : 3.7999999999999998,"y" : 1.75},"51" : {"x" : 3.7999999999999998,"y" : 1.4000000000000004},"52" : {"x" : 3.7999999999999998,"y" : 1.0500000000000003},"53" : {"x" : 3.7999999999999998,"y" : 0.70000000000000018},"54" : {"x" : 3.7999999999999998,"y" : 0.35000000000000009},"55" : {"x" : 4.5999999999999996,"y" : 2.7999999999999998},"56" : {"x" : 4.5999999999999996,"y" : 2.4500000000000002},"57" : {"x" : 4.5999999999999996,"y" : 2.1000000000000001},"58" : {"x" : 4.5999999999999996,"y" : 1.75},"59" : {"x" : 4.5999999999999996,"y" : 1.4000000000000004},"6" : {"x" : -0.20000000000000007,"y" : 2.4500000000000002},"60" : {"x" : 4.5999999999999996,"y" : 1.0500000000000003},"61" : {"x" : 4.5999999999999996,"y" : 0.70000000000000018},"62" : {"x" : 5.3999999999999995,"y" : 2.4500000000000002},"63" : {"x" : 5.3999999999999995,"y" : 2.1000000000000001},"64" : {"x" : 5.3999999999999995,"y" : 1.75},"65" : {"x" : 5.3999999999999995,"y" : 1.4000000000000004},"66" : {"x" : 5.3999999999999995,"y" : 1.0500000000000003},"67" : {"x" : 5.3999999999999995,"y" : 0.70000000000000018},"68" : {"x" : 6.1999999999999993,"y" : 2.4500000000000002},"69" : {"x" : 6.1999999999999993,"y" : 2.1000000000000001},"7" : {"x" : -0.20000000000000007,"y" : 2.1000000000000001},"70" : {"x" : 6.1999999999999993,"y" : 1.75},"71" : {"x" : 6.1999999999999993,"y" : 1.4000000000000004},"72" : {"x" : 6.1999999999999993,"y" : 1.0500000000000003},"8" : {"x" : -0.20000000000000007,"y" : 1.75},"9" : {"x" : -0.20000000000000007,"y" : 1.4000000000000004}},"polygon" : {"point_0" : {"x" : -1.0,"y" : 2.0},"point_1" : {"x" : 1.5,"y" : 3.5},"point_2" : {"x" : 7.0,"y" : 2.5},"point_3" : {"x" : 6.0,"y" : 0.5},"point_4" : {"x" : 0.0,"y" : 0.0}}
}

json数据解析+画出散点和边界图相关推荐

  1. Android JSON数据解析(GSON方式)

    要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Jav ...

  2. Rxjava、Retrofit返回json数据解析异常处理

    每个App都避免不了要进行网络请求,从最开始的用谷歌封装的volley到再到android-async-http再到OKHttpUtils再到现在的Retrofit和RxJava,从我自己用后的体验来 ...

  3. 29-30Python多线程、多线程、使用threading模块创建线程;JSON数据解析、编码为JSON类型转换对应表、Python类型转换对应表、json.dumps与json.loads

    29Python3多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些 ...

  4. Android学习笔记44:JSON数据解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

  5. Android json数据解析及简单例子

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  6. Linux7081端口,bash,linux_利用shell将json数据解析后排序问题,bash,linux,ubuntu,json - phpStudy...

    利用shell将json数据解析后排序问题 最近在写一个模仿dropbox_uploader的百度网盘的shell脚本.通过调用pcs的api返回一个目录下的所有文件.返回的json数据如下: {&q ...

  7. Android系列---JSON数据解析

    http://www.cnblogs.com/xiaoluo501395377/p/3446605.html Android系列---JSON数据解析 转载于:https://www.cnblogs. ...

  8. iOS进阶(XML、JSON数据解析)

    1.XML解析之DOM解析 需要用到libxml2.dylib框架 和GDataXMLNode工具 DOM是基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中.从而消耗很大的内存空间.DOM ...

  9. [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 场景模拟 接上一篇, 假设由于漏存JD SKU对应的店铺信 ...

最新文章

  1. python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?
  2. 执行计划 分析一条sql语句的效率 mysql_mysql的SQL语句执行计划分析:EXPLAIN
  3. 【深度好文】ICLR 2022 | cosFormer:重新思考注意力机制中的Softmax
  4. deployment:声明式的升级应用
  5. Git 查看帮助命令
  6. 《SPSS 统计分析从入门到精通(第2版)》一6.3 二项式检验
  7. arduino烧录_如何给AVR单片机烧录程序
  8. mysql 查看tomcat日志_查看tomcat日志
  9. 李开复给大学生的第7封信:21世纪最需要的7种人才
  10. comsol通直流电_COMSOL 在电力行业中的 10 种实际用途
  11. 360,手机助手的功能,既然有如此二面性?
  12. Frank and Hall
  13. 苹果编程语言Swift解析:将推动应用开发巨变
  14. JDK源码解析 - java.util.ArrayList
  15. 180128 逆向-ichunqiu(Nonstandard)
  16. PHP.ini配置文件[中文]
  17. Linux那些事儿之我是EHCI(5) 2008年的这一场雪
  18. 北航计算机学院王华峰,软件学院学术论坛第四次宣讲会
  19. LED灯驱动电源的七条经验
  20. 云计算概念受益全球大应用 大数据被视为新石油

热门文章

  1. 什么是换手率?如何计算?
  2. 韩信点兵,,三人余 五人余 七人余
  3. 建行 新街口支行 管理公积金放款的经理
  4. ubuntu创建、删除文件及目录命令
  5. 固定资产管理系统给互联网企业带来的商业价值
  6. 苹果 iPhone 4 手机拆机组图,看看 iPhone 4 的内部构造与零件(二)_打杂的_新浪博客...
  7. C# EF将两条数据集合成一条(根据falg取值)
  8. L8550和L8050
  9. android图片资源加密解密,Android下资源图片的加密和解密
  10. 关于MAC安装Pycharm的总结