在 python 中向贝塞尔图添加多条线
Add multiple lines to bezier plot in python
它是我之前 post 的延续。
我想出了一种使用贝塞尔包绘制 x 轴和 y 轴之间的弧线的方法。
import bezier
import numpy as np
import matplotlib.pyplot as plt
nodes = np.asfortranarray([
[0 , 10.0],
[500, 10],
[1000 , 0],
])
print nodes
curve = bezier.Curve(nodes, degree=2)
curve.plot(100)
nodes1 = np.asfortranarray([
[0 , 20.0],
[1000, 20],
[2000 , 0],
])
print nodes1
curve2 = bezier.Curve(nodes1, degree=2)
curve2.plot(100)
plt.show()
手册中并不清楚,但我想将所有曲线添加到一个图中。上面的代码生成两个单独的图。有帮助吗?
当您调用 curve.plot(100)
时,它 returns matplotlib
Axes
对象,它在该对象上创建了绘图。你只需要抓住那个句柄:
ax = curve.plot(100)
如果您将该 Axes
对象提供给后续的 curve2.plot
调用,则两条曲线应绘制在同一轴上。
curve2.plot(100, ax=ax)
你可以看到documentation here。这是完整的脚本:
import bezier
import numpy as np
import matplotlib.pyplot as plt
nodes = np.asfortranarray([
[0 , 10.0],
[500, 10],
[1000 , 0],
])
print nodes
curve = bezier.Curve(nodes, degree=2)
ax = curve.plot(100)
nodes1 = np.asfortranarray([
[0 , 20.0],
[1000, 20],
[2000 , 0],
])
print nodes1
curve2 = bezier.Curve(nodes1, degree=2)
curve2.plot(100, ax=ax)
plt.show()
要继续添加更多曲线,只需确保将 ax=ax
添加到每个 .plot
命令:
nodes2 = np.asfortranarray([
[0 , 30.0],
[1500, 30],
[3000 , 0],
])
print nodes2
curve3 = bezier.Curve(nodes2, degree=2)
curve3.plot(100, ax=ax)
它是我之前 post 的延续。
我想出了一种使用贝塞尔包绘制 x 轴和 y 轴之间的弧线的方法。
import bezier
import numpy as np
import matplotlib.pyplot as plt
nodes = np.asfortranarray([
[0 , 10.0],
[500, 10],
[1000 , 0],
])
print nodes
curve = bezier.Curve(nodes, degree=2)
curve.plot(100)
nodes1 = np.asfortranarray([
[0 , 20.0],
[1000, 20],
[2000 , 0],
])
print nodes1
curve2 = bezier.Curve(nodes1, degree=2)
curve2.plot(100)
plt.show()
手册中并不清楚,但我想将所有曲线添加到一个图中。上面的代码生成两个单独的图。有帮助吗?
当您调用 curve.plot(100)
时,它 returns matplotlib
Axes
对象,它在该对象上创建了绘图。你只需要抓住那个句柄:
ax = curve.plot(100)
如果您将该 Axes
对象提供给后续的 curve2.plot
调用,则两条曲线应绘制在同一轴上。
curve2.plot(100, ax=ax)
你可以看到documentation here。这是完整的脚本:
import bezier
import numpy as np
import matplotlib.pyplot as plt
nodes = np.asfortranarray([
[0 , 10.0],
[500, 10],
[1000 , 0],
])
print nodes
curve = bezier.Curve(nodes, degree=2)
ax = curve.plot(100)
nodes1 = np.asfortranarray([
[0 , 20.0],
[1000, 20],
[2000 , 0],
])
print nodes1
curve2 = bezier.Curve(nodes1, degree=2)
curve2.plot(100, ax=ax)
plt.show()
要继续添加更多曲线,只需确保将 ax=ax
添加到每个 .plot
命令:
nodes2 = np.asfortranarray([
[0 , 30.0],
[1500, 30],
[3000 , 0],
])
print nodes2
curve3 = bezier.Curve(nodes2, degree=2)
curve3.plot(100, ax=ax)