编程语言
首页 > 编程语言> > Python-对数y轴使刻度标签消失

Python-对数y轴使刻度标签消失

作者:互联网

这个问题已经在这里有了答案:            >            How to show minor tick labels on log-scale with Matplotlib                                    1个
在将行plt.yscale(‘log’)添加到我的简单绘图脚本后

import numpy as np
residuals = np.loadtxt('res_jacobi.txt', skiprows=1)

import matplotlib.pyplot as plt
fig = plt.figure()

steps = np.arange(0, len(residuals), 1)

plt.plot(steps, residuals, label='$S$')

plt.xlabel("Step",fontsize=20)
plt.ylabel("$S$",fontsize=20)
plt.ylim(0.95 * min(residuals), 1.05 * max(residuals))
plt.yscale('log')

plt.savefig('jacobi-res.pdf', bbox_inches='tight', transparent=True)

y标签消失.

enter image description hereenter image description here

我敢肯定有一个简单的解决办法,但搜索没有找到一个解决办法.任何帮助将非常感激.

解决方法:

matplotlib的正常行为是仅在对数缩放中标记主要刻度线-甚至是几个数量级,例如{0.1,1.0}.您的价值观介于两者之间.您可以:

>将轴重新缩放到更大的范围,
plt.gca().set_ylim(0.1,1.0)
>手动标记刻度线,
plt.gca().yaxis.set_minor_formatter(FormatStrFormatter(“%.2f”))

标签:axis-labels,matplotlib,python
来源: https://codeday.me/bug/20191119/2035887.html