我使用以下代码在 Jupyter 中生成图表:
import numpy as np
import matplotlib.pyplot as plt
import sympy as sp
from scipy.integrate import quad
import math
from matplotlib.patches import Circle
fig2 = plt.figure(figsize=(10,8))
plt.subplot(1, 1, 1)
plt.plot(2, 5, marker='*', markersize=25, color='gold')
plt.plot(2, -5, marker='*', markersize=25, color='gold')
plt.plot(3, 0, marker='*', markersize=25, color='gold')
plt.xlabel(r"$x [rg]$", fontsize=20)
plt.ylabel(r"$y [rg]$", fontsize=20)
circle = Circle((0, 0), 1, color='black')
plt.gca().add_patch(circle)
plt.gca().set_aspect('equal')
plt.axis([-10, 30, -10, 10])
plt.tick_params(axis='both', labelsize=20)
但是,我希望它类似于下图的特征。使用 LaTeX 中用于文本和数字的相同默认字体,并在绘图的所有四个边上使用小“破折号”网格。我怎样才能实现这个目标?
对于乳胶字体,您需要使用
mpl.rcParams["text.usetex"] = True
和正确的乳胶安装。
.tick_params()
函数的参数。
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
mpl.rcParams["text.usetex"] = True
fig, ax = plt.subplots(figsize=(10, 8))
ax.plot(2, 5, marker="*", markersize=25, color="gold")
ax.plot(2, -5, marker="*", markersize=25, color="gold")
ax.plot(3, 0, marker="*", markersize=25, color="gold")
circle = Circle((0, 0), 1, color="black")
ax.add_patch(circle)
ax.set_xlabel(r"$x [rg]$", fontsize=20)
ax.set_ylabel(r"$y [rg]$", fontsize=20)
ax.set_aspect("equal")
ax.set_xlim(-10, 30)
ax.set_ylim(-10, 10)
ax.tick_params(axis="both", top=True, right=True, labelsize=20, direction="in")
plt.show()