我遇到了轴的刻度标签格式的问题.我禁用了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偏移量作为标签,但我也不知道如何做到这一点.
我希望注释中的数字类似于{x}\cdot10 ^ {y},而不是现在的数字:{x} E + {y}.是否有适合的字符串格式化程序?
对我来说最理想的解决方案是使用格式字符串,例如'%.2e',但可以自动转换为十个表示的强大功能.
我正在尝试使用定义的级别和日志规范制作等高线图.以下是一个例子:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LogNorm
delta = 0.025
x = y = np.arange(0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = plt.mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = plt.mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10 * (Z1* Z2)
fig=plt.figure()
ax1 = fig.add_subplot(111)
lvls = np.logspace(-4,0,20)
CF = ax1.contourf(X,Y,Z,
norm = LogNorm(),
levels = lvls
)
CS = ax1.contour(X,Y,Z,
norm = LogNorm(),
colors = 'k',
levels = lvls
) …Run Code Online (Sandbox Code Playgroud)