我想在matplotlib中使用LaTeX字体加粗刻度标签。可在此处找到示例图: sample plot
我正在使用的代码:
import matplotlib as mpl
import matplotlib.pyplot as plt
f=plt.figure(figsize=(10,10))
ax = f.add_subplot(111)
x_data = [x for x in range(0, 200)]
y_data = [pow(x,6) for x in x_data]
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.rc('font', size=24)
plt.rc('font', weight='bold')
plt.grid(True)
p3, = plt.plot(x_data,y_data,'g',linewidth = 7,ls='dashed',markersize=8,markeredgewidth=8)
ax.ticklabel_format(axis='y', style='sci', scilimits=(-2,2))
mpl.ticker.ScalarFormatter(useMathText = True)
plt.show()
问题是,我想让上角的1e13显示为$ 10 ^ 13 $,如果我遗漏的那样
mpl.ticker.ScalarFormatter(useMathText = True)
但它不是粗体字。有没有办法做到这一点?我知道我可以手动调整原始数据,但我很乐意有一个自动解决方案。
与此问题相关,我找到了以下主题:
matplotlib: format axis offset-values to whole numbers or specific number
Joe Kington写了一个类FixedOrderFormatter(ScalarFormatter),它允许将功率从1e13改为1e14。是否有可能将FixedOrderFormatter与科学记数法合并为$ 10 ^ 14 $,加粗字体而不是1e14?