是否有任何成熟的 Python 包可以绘制函数,并可能使用自适应采样?
我希望只传递一个函数(可以是一个数字黑匣子)和一个范围,并期望一个绘图作为输出。
我不是在寻找:手动生成采样点,手动计算函数值,最后绘制这些预先计算的值。我知道 matplotlib 可以做到这一点。
是否有任何成熟的 Python 包可以绘制函数,并可能使用自适应采样?
我希望只传递一个函数(可以是一个数字黑匣子)和一个范围,并期望一个绘图作为输出。
我不是在寻找:手动生成采样点,手动计算函数值,最后绘制这些预先计算的值。我知道 matplotlib 可以做到这一点。
是的。
Sage 可以自适应地绘制函数;该链接指向 3d 实现,但大概有一个类似的 2d 实现。
您可以使用此函数对一维函数进行自适应采样。(请参阅https://stackoverflow.com/questions/14084634/adaptive-plotting-of-a-function-in-python进行讨论)从您的评论来看,这可能不是您想要的解决方案,但如果可以单独执行所有步骤,将便利包装器与您想要的界面组合在一起不会花费太长时间。
SymPy 包含一个自适应绘图界面;不过,它似乎只绘制 SymPy 表达式,这可能不适合您的需要。(Ondrej 可以在这一点上纠正我。)
这些实现可能跨越了重量级(Sage 是一个大库)和轻量级(单个采样函数不是侵入性的,并且可能您可以将它与您喜欢的任何图形后端一起使用)的极端。
听起来您想要SymPy 的多精度绘图函数,它能够在给定范围内绘制任意黑盒函数。
import math
from sympy.mpmath import plot
plot(lambda x: math.exp(x), [1, 4])