如何为matplotlib图例标签返回由分数内的上标组成的字符串? [复制]
Posted
技术标签:
【中文标题】如何为matplotlib图例标签返回由分数内的上标组成的字符串? [复制]【英文标题】:How to return string composed of superscript inside of fraction for matplotlib legend label? [duplicate] 【发布时间】:2019-07-11 00:41:06 【问题描述】:我编写了一个绘制x
和y
数据的例程。此代码还计算第 n 个导数 d/dx^n (y)
更改符号的索引,其中 n
被指定为函数参数。我想将此导数作为图例标签包含在 matplotlib 图中。
如果预先确定,我可以创建一个标签来包含它。例如,如果n
被预先确定为2
,那么:
label = r'$\fracd^2ydx^2$'
但是由于n
是一个函数参数,我不知道如何将它分配给分数。作为示例(包含失败的尝试),请参见下文:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(1, 10, 10)
y = x
def f(x, y, n):
""" """
fig, ax = plt.subplots()
if n == 1:
label = r'$\fracdydx = 0$'
else:
numerator = 'd^y'.format(n)
denominator = 'dx^'.format(n)
# label = r'$\frac$'.format(numerator, denominator)
# label = '$\frac$'.format(numerator, denominator)
# label = '$\fracnumeratordenominator$'
label = r'$\fracnumeratordenominator$'
ax.scatter(x, y, c='r', marker='.', s=5, label=label)
ax.legend(loc='upper left')
plt.show()
plt.close(fig)
f(x, y, n=1)
f(x, y, n=2)
我只关心图例标签。我怎样才能得到一个字符串分数的所需输出,其分子显示为r'$d^ny$'
,其分母显示为r'$dx^n$'
(其中n
是一个数字)?
【问题讨论】:
【参考方案1】:您可以使用字符串格式化语法%s
来执行此操作,如下所示:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(1, 10, 10)
y = x
def f(x, y, n):
""" """
fig, ax = plt.subplots()
if n == 1:
label = r'$\fracdydx = 0$'
else:
numerator = 'd^y'.format(n)
denominator = 'dx^'.format(n)
label = r'$\frac%s%s$' %(numerator, denominator)
ax.scatter(x, y, c='r', marker='.', s=5, label=label)
ax.legend(loc='upper left', fontsize=18)
plt.show()
plt.close(fig)
【讨论】:
以上是关于如何为matplotlib图例标签返回由分数内的上标组成的字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章