我遇到了轴的刻度标签格式的问题.我禁用了y_axis的偏移量:
ax1.ticklabel_format(style = 'sci', useOffset=False)
Run Code Online (Sandbox Code Playgroud)
并试图把它作为科学的格式,但我得到的是:
0.00355872
Run Code Online (Sandbox Code Playgroud)
但我期待的是:
3.55872...E-2
Run Code Online (Sandbox Code Playgroud)
或类似的.
我真正想要的是:
3.55872... (on the tick label)
x 10^2 (or something similar - on the axis label)
Run Code Online (Sandbox Code Playgroud)
我可以尝试将标签设置为静态,但最后我将有几十或几百个具有不同值的图,因此需要动态设置.
另一种方法是将y_axis偏移量作为标签,但我也不知道如何做到这一点.
我一直是python代码用彩条绘制4个数字.由于我使用Texfonts,matplotlib使得减号太宽.因此,我有一个格式化函数,用连字符替换减号.但是,出于某种原因,我无法将格式化程序应用于我的颜色栏.我收到一个错误:
cb.ax.set_major_formatter(ticker.FuncFormatter(myfmt))
AttributeError: 'AxesSubplot' object has no attribute 'set_major_formatter'
Run Code Online (Sandbox Code Playgroud)
下面是我的代码中断的部分:你是否知道如何强制使用我的格式化功能?
#!/usr/bin/env python3
import re
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
from matplotlib.ticker import *
import matplotlib.ticker as ticker
import matplotlib as mpl
import matplotlib.gridspec as gridspec
from matplotlib.patches import Ellipse
from list2nparr import list2nparr
from matplotlib.ticker import ScalarFormatter
plt.rcParams['text.usetex'] = True
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = 'cm'
plt.rcParams['font.size'] = 16
#plt.rcParams['font.weight'] = 'heavy'
plt.rcParams['axes.unicode_minus'] = False
#-----------------------------------------------------
def myfmt(x, pos=None):
rv = format(x)
if …Run Code Online (Sandbox Code Playgroud)