gpt4 book ai didi

python - 如何在 matplotlib 中用注释包围曲线?

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:06 27 4
gpt4 key购买 nike

我有一个生成以下数字的 python 代码。我想用椭圆做一个注释来包围图中提到的曲线。

enter image description here

注意该图是使用 MATLAB 生成的,我无法在 python-matplotlib 中完成。谢谢。

最佳答案

您可以尝试以下方法来定位您的椭圆:选择一个 x 坐标并计算在该坐标处包含所提供函数列表所需的椭圆高度。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse

x = np.linspace(1,10,1000)

flogs = [lambda x, a=a: np.log(a * x) for a in range(1,4)]
fexps = [lambda x, a=a: np.exp(a * x) for a in [0.18,0.2]]
funcs = flogs + fexps

fig = plt.figure()
ax = fig.add_subplot(111)

for func in funcs:
ax.plot(x,func(x))


def add_ellipse(funcs, x):
# the y-coordinate of the center of our ellipse:
y = np.mean([funcs[i](x) for i in range(len(funcs))])
# fix the width of the ellipse to this value:
w = 0.4
# find the height of the ellipse needed, and pad a bit:
h = np.ptp([funcs[i](x) for i in range(len(funcs))]) * 1.5
e = Ellipse(xy=(x,y), width=w, height=h, angle=0)
e.set_facecolor('none')
ax.add_artist(e)

add_ellipse(fexps, 8.5)
add_ellipse(flogs, 8)

plt.show()

enter image description here

关于python - 如何在 matplotlib 中用注释包围曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30893413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com