01-基石题-test
This commit is contained in:
66
01-基石题-test/工具openode模型MiniMax21/plot.py
Normal file
66
01-基石题-test/工具openode模型MiniMax21/plot.py
Normal file
@@ -0,0 +1,66 @@
|
||||
# /// script
|
||||
# requires-python = ">=3.11"
|
||||
# dependencies = ["numpy", "matplotlib"]
|
||||
# ///
|
||||
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.rcParams["font.sans-serif"] = [
|
||||
"WenQuanYi Micro Hei",
|
||||
"Noto Sans CJK SC",
|
||||
"Microsoft YaHei",
|
||||
"DejaVu Sans",
|
||||
]
|
||||
plt.rcParams["axes.unicode_minus"] = False
|
||||
|
||||
fig, ax = plt.subplots(figsize=(10, 7), dpi=150)
|
||||
|
||||
x = np.linspace(-1, 5, 500)
|
||||
y = -2 * x**2 + 8 * x - 3
|
||||
|
||||
ax.plot(x, y, "b-", linewidth=2, label="$y = -2x^2 + 8x - 3$")
|
||||
|
||||
vertex_x, vertex_y = 2, 5
|
||||
ax.scatter(
|
||||
[vertex_x],
|
||||
[vertex_y],
|
||||
color="red",
|
||||
s=150,
|
||||
zorder=5,
|
||||
label=f"顶点 ({vertex_x}, {vertex_y})",
|
||||
)
|
||||
ax.annotate(
|
||||
f"顶点 ({vertex_x}, {vertex_y})\n最大值: y = {vertex_y}",
|
||||
xy=(vertex_x, vertex_y),
|
||||
xytext=(vertex_x + 0.8, vertex_y + 1.5),
|
||||
fontsize=11,
|
||||
ha="left",
|
||||
arrowprops=dict(arrowstyle="->", color="red", lw=1.5),
|
||||
bbox=dict(boxstyle="round,pad=0.3", facecolor="yellow", alpha=0.7),
|
||||
)
|
||||
|
||||
ax.axhline(y=0, color="gray", linestyle="--", linewidth=1, alpha=0.7)
|
||||
ax.axvline(x=0, color="gray", linestyle="--", linewidth=1, alpha=0.7)
|
||||
ax.axvline(
|
||||
x=vertex_x,
|
||||
color="green",
|
||||
linestyle=":",
|
||||
linewidth=1.5,
|
||||
alpha=0.7,
|
||||
label=f"对称轴 x = {vertex_x}",
|
||||
)
|
||||
|
||||
ax.set_xlabel("x", fontsize=12)
|
||||
ax.set_ylabel("y", fontsize=12)
|
||||
ax.set_title("二次函数 $y = -2x^2 + 8x - 3$ 的图像", fontsize=14, fontweight="bold")
|
||||
ax.legend(loc="upper right", fontsize=10)
|
||||
ax.grid(True, alpha=0.3)
|
||||
|
||||
ax.set_xlim(-0.5, 5.5)
|
||||
ax.set_ylim(-6, 8)
|
||||
|
||||
plt.tight_layout()
|
||||
plt.savefig("figure.png", bbox_inches="tight", dpi=150)
|
||||
plt.close()
|
||||
print("图像已保存: figure.png")
|
||||
Reference in New Issue
Block a user