gpt4 book ai didi

python - Pyplot注释: roman numerals

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:07 26 4
gpt4 key购买 nike

在 python 图中,我想用罗马数字添加注释。即,“I”、“II”、“III”和“IV”。

现在,最简单的做法就是简单地使用字符串作为“I”、“II”等,但我希望将它们专门排版为罗马数字(因此,包括顶部和底部的水平条例如,III。

困难主要在于使用 LateX 命令,就像我对其他符号(例如\alpha)所做的那样,似乎不太可能,因为如果想在 LateX 中使用罗马数字,通常的做法是定义 a new command我不知道如何将其合并到 python 环境中。

有什么想法吗?

最佳答案

这可以通过将 LaTeX \newcommand 放入 plt.rcParams 中的 text.latex.preamble 中来实现。 。在这里,我使用 answer you linked to 中的罗马数字命令。为了帮助转义 LaTeX 字符,我们可以使用原始字符串来使事情变得更容易(在字符串前面加上 r 字符)。

import matplotlib.pyplot as plt

# Turn on LaTeX formatting for text
plt.rcParams['text.usetex']=True

# Place the command in the text.latex.preamble using rcParams
plt.rcParams['text.latex.preamble']=r'\makeatletter \newcommand*{\rom}[1]{\expandafter\@slowromancap\romannumeral #1@} \makeatother'

fig,ax = plt.subplots(1)

# Lets try it out. Need to use a 'raw' string to escape
# the LaTeX command properly (preface string with r)
ax.text(0.2,0.2,r'\rom{28}')

# And to use a variable as the roman numeral, you need
# to use double braces inside the LaTeX braces:
for i in range(1,10):
ax.text(0.5,float(i)/10.,r'\rom{{{}}}'.format(i))

plt.show()

enter image description here

关于python - Pyplot注释: roman numerals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34177378/

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