Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在轴具有不同比例(y轴对数比例和x轴线性比例)的数学空间中,查找点是否位于多边形内_Python_Polygon - Fatal编程技术网

Python 在轴具有不同比例(y轴对数比例和x轴线性比例)的数学空间中,查找点是否位于多边形内

Python 在轴具有不同比例(y轴对数比例和x轴线性比例)的数学空间中,查找点是否位于多边形内,python,polygon,Python,Polygon,我正在使用封闭点函数使用多边形函数定位点是否位于多边形内。如果将两个轴的点绘制为相同比例,则一切正常,但是如果轴的比例不同,则功能无法正常工作,因为多边形应因不同比例而发生变化 左侧的图形具有线性比例上的两个轴,而右侧的图形具有对数比例上的y轴,这将生成具有不同形状的多边形。因此,在一个实例中绘制的点位于较低的多边形上,而在另一个实例中位于上面的多边形上,这是我试图在代码上实现的情况 with open('Robertson2009_Fr_Qtn.csv') as csvfile: # r

我正在使用
封闭点
函数使用多边形函数定位点是否位于多边形内。如果将两个轴的点绘制为相同比例,则一切正常,但是如果轴的比例不同,则功能无法正常工作,因为多边形应因不同比例而发生变化

左侧的图形具有线性比例上的两个轴,而右侧的图形具有对数比例上的y轴,这将生成具有不同形状的多边形。因此,在一个实例中绘制的点位于较低的多边形上,而在另一个实例中位于上面的多边形上,这是我试图在代码上实现的情况

with open('Robertson2009_Fr_Qtn.csv') as csvfile:

 # read data
    Rob_Zones_Data2009 = pd.read_csv(csvfile, 
                        index_col = None, 
                        header = 0, 
                        nrows = 50,
                        skiprows = None)   # start reading at accual data
                                   # restore header names.  

zone1 = Rob_Zones_Data2009[['Zone 1 Fr', 'Zone 1 Qtn']].apply(tuple, axis=1)
zone2 = Rob_Zones_Data2009[['Zone 2 Fr', 'Zone 2 Qtn']].apply(tuple, axis=1)

zone1 = zone1[~ zone1.apply(lambda x: np.isnan(x[0] or np.isnan(x[1])))]
zone2 = zone2[~ zone2.apply(lambda x: np.isnan(x[0] or np.isnan(x[1])))]

zone1 =Polygon(*zone1)
zone2 =Polygon(*zone2)


Classification2009 = np.ones(len(dataframe.Depth))
Classification2010 = np.ones(len(dataframe.Depth))
points             = np.ones(len(dataframe.Depth))

dataframe_for_Classification = pd.DataFrame(dataframe, columns = ['Fr', 'Qtn']) 
dataframe_for_Classification = dataframe_for_Classification.round(2)
points = list(zip(dataframe_for_Classification.Fr,dataframe_for_Classification.Qtn))

for i in range(len(dataframe.Depth)):
    if   np.isnan(points[i]).any():
         Classification2009[i] = 0
         continue 
    elif zone1.encloses_point(points[i]):
         Classification2009[i] = 1
         continue
    elif zone2.encloses_point(points[i]):
         Classification2009[i] = 2
         continue
    else:
         Classification2009[i] = 111
关于如何在脚本上实现这一点,有什么想法吗