目前我的y轴刻度小数点后的位数都相同,因此刻度的总长度不同。我希望刻度位数的总长度相同。我该怎么做?我的代码如下:
ax = plt.gca() ax.yaxis.set_major_formatter(FormatStrFormatter('%1.3f'))
此处,y轴记号的总长度不同:
我希望刻度数字的总长度相同:
t30tvxxf1#
请改用FuncFormatter()。
from matplotlib.ticker import FuncFormatter import math
创建输出所需标签的函数:
def my_format(val, pos): n = 3 y = abs(val) dec = max(0, min(n,n-int(math.log10(y)))) if y else n return f"{val:.{dec}f}"
将函数应用于轴,而不是FormatStrFormatter():
ax.yaxis.set_major_formatter(FuncFormatter(my_format))
1条答案
按热度按时间t30tvxxf1#
请改用FuncFormatter()。
创建输出所需标签的函数:
将函数应用于轴,而不是FormatStrFormatter():