python - 从已经绘制的数据点制作列表
问题描述
我正在尝试列出我已经绘制的数据点/线,但我无法让它工作。我尝试了几件事,但不幸的是没有结果。
我想要的是我得到一个我刚刚绘制的数据点的列表。之后,我希望能够在列表的帮助下创建多行,而不是现在发生的所有小行。绘图是在这两行中完成的:
这个绘制垂直线
ax.plot([i+1.5,i+1.5], [j+.5,j+1.5], linewidth=3,linestyle='-',color='#000000')
这个绘制水平线
ax.plot([i+.5,i+1.5], [j+1.5,j+1.5], linewidth=3,linestyle='-',color='#000000')
有人可以帮帮我吗?下面是我的代码的一部分。
for iIsochrone in range(int(np.nanmin(array)),int(np.nanmax(array)), Wavelinetime):
#zorgt voor golflijn met stappen van 10 vertikaal
for i in range(fileObject.numberOfColumnsInArray-1):
for j in range(fileObject.numberOfRowsInArray):
if (array[j, i]<=iIsochrone and array[j, i+1]>iIsochrone) or (array[j, i]>iIsochrone and array[j, i+1]<=iIsochrone):
ax.plot([i+1.5,i+1.5], [j+.5,j+1.5], linewidth=3,linestyle='-',color='#000000') #rechte blockline
#zorgt voor golflijn met stappen van 10 horizontaal
for i in range(fileObject.numberOfColumnsInArray):
for j in range(fileObject.numberOfRowsInArray-1):
if (array[j, i]<=iIsochrone and array[j+1, i]>iIsochrone) or (array[j, i]>iIsochrone and array[j+1, i]<=iIsochrone):
ax.plot([i+.5,i+1.5], [j+1.5,j+1.5], linewidth=3,linestyle='-',color='#000000') #rechte blockline```
解决方案
如此SO post中所述,您可以使用该get_lines()
方法从绘图中提取数据点
gca().get_lines()[n].get_xydata()
编辑:
另一种选择是在绘制之前保存这些值。
例如,由于您正在使用列表,您可以将i值保存到名为mylisti的列表中,将j值保存到另一个名为mylistj的列表中:
mylisti=[]
mylistj=[]
for iIsochrone in range(int(np.nanmin(array)),int(np.nanmax(array)), Wavelinetime):
#zorgt voor golflijn met stappen van 10 vertikaal
for i in range(fileObject.numberOfColumnsInArray-1):
for j in range(fileObject.numberOfRowsInArray):
if (array[j, i]<=iIsochrone and array[j, i+1]>iIsochrone) or (array[j, i]>iIsochrone and array[j, i+1]<=iIsochrone):
mylisti+=[i+1.5,i+1.5]
mylistj+=[j+.5,j+1.5]
ax.plot([i+1.5,i+1.5], [j+.5,j+1.5], linewidth=3,linestyle='-',color='#000000') #rechte blockline
#zorgt voor golflijn met stappen van 10 horizontaal
for i in range(fileObject.numberOfColumnsInArray):
for j in range(fileObject.numberOfRowsInArray-1):
if (array[j, i]<=iIsochrone and array[j+1, i]>iIsochrone) or (array[j, i]>iIsochrone and array[j+1, i]<=iIsochrone):
ax.plot([i+.5,i+1.5], [j+1.5,j+1.5], linewidth=3,linestyle='-',color='#000000') #rechte blockline```
推荐阅读
- hadoop - 纱线节点管理器失败,出现 0xc0000bb8
- php - 如何使用 FputCSV 将数组转换为 CSV 导出的数组列表?
- c - 为什么这个条件语句在 C 中不起作用?
- shopify - 获取产品的运费 - Shopify
- reactjs - 在 Redux 中哪里执行现有状态的异步转换?
- reactjs - ESLint 导致 VSCode 中的导入出现问题
- laravel - ErrorException 未定义变量 $employee
- c++ - 编译器资源管理器上 MSVC 中的范围::子范围
- postman - 邮递员“此文件不在您的工作目录中”
- python-3.x - Python pytesseract 从各种图像中提取数字