如何在 Matplotlib 绘图中使用 LaTeX 字体?

问题描述 投票:0回答:1

我使用以下代码在 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 中用于文本和数字的相同默认字体,并在绘图的所有四个边上使用小“破折号”网格。我怎样才能实现这个目标?

python matplotlib plot latex
1个回答
0
投票

对于乳胶字体,您需要使用

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()

© www.soinside.com 2019 - 2024. All rights reserved.