Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 有没有办法在博克绘制一条非圆弧?_Python_Python 3.x_Bokeh - Fatal编程技术网

Python 有没有办法在博克绘制一条非圆弧?

Python 有没有办法在博克绘制一条非圆弧?,python,python-3.x,bokeh,Python,Python 3.x,Bokeh,我正在Bokeh进行飞行轨迹数据可视化,我想知道是否有更精确的方法来绘制圆弧。使用两个地理位置之间的大圆导航方程,我可以找到一个中点,目前我正在使用弧形图示符绘制一个由飞行路径的点(起点、中点、终点)定义的圆,起点和终点角度是两个机场的位置 它适用于短路线,但靠近极点的很长路线会变得非常扭曲,弧线看起来不正确。这是由于Bokeh在CartodBPositon地图中使用了Web Mercator标准投影 我还可以从大圆导航方程中fid初始标题和最终标题。所以我的基本问题是,我想做一些类似的事情:

我正在Bokeh进行飞行轨迹数据可视化,我想知道是否有更精确的方法来绘制圆弧。使用两个地理位置之间的大圆导航方程,我可以找到一个中点,目前我正在使用弧形图示符绘制一个由飞行路径的点(起点、中点、终点)定义的圆,起点和终点角度是两个机场的位置

它适用于短路线,但靠近极点的很长路线会变得非常扭曲,弧线看起来不正确。这是由于Bokeh在CartodBPositon地图中使用了Web Mercator标准投影

我还可以从大圆导航方程中fid初始标题和最终标题。所以我的基本问题是,我想做一些类似的事情:

m = figure()
m.non_circular_arc(start_x, start_y, start_angle, mid_x, mid_y, end_x, end_y, end_angle)

Bokeh中是否存在这种类型的曲线?

Bokeh支持使用
bezier
glyph方法绘制三次Bézier曲线:

或者是二次曲线,如果足够的话

从到开始,我设计了这个Python函数

def make_z(lat1, lon1, lat2, lon2):
    from math import degrees, radians, sin, sqrt
    from scipy.optimize import newton
    lat1, lon1, lat2, lon2 = map(radians, (lat1, lon1, lat2, lon2))
    z1, z2 = map(sin, (lat1, lat2))
    def find_z2(lon0):
        dd = (1-z1**2)*sin(lon1+lon0)**2/z1**2
        s = sin(lon2+lon0)
        return z2-s/sqrt(dd+s**2)
    lon0 = newton(find_z2, 0)
    dd = (1-z1**2)*sin(lon1+lon0)**2/z1**2
    def z(f):
        s = sin(radians(f)+lon0)
        return s/sqrt(dd+s**2)
    return z
其中,输入为四倍(以度为单位),用于描述 大弧的起点和终点,输出为 用于描述标准化数据的经度函数(以度为单位) (-1 你是这样用的

z = make_z(45, 10,   30, 100)
print(z(10), z(100))
# 0.7071067811865475 0.5000000000000003

你能在这里发布一个输出样本吗?或者演示想要的结果看看