我在设置带有颜色条的pcolormesh图时遇到了一些麻烦,该颜色条在颜色条上包含对数间隔的小刻度线.
我最接近的是这样的:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
xbins = np.linspace(0, 1, 50)
ybins = np.linspace(0, 1, 50)
data = np.random.random((49,49))
fig, ax = plt.subplots()
im = ax.pcolormesh(xbins, ybins, data, norm=matplotlib.colors.LogNorm())
cb = fig.colorbar(im)
cb.ax.minorticks_on()
plt.savefig('test.png')
Run Code Online (Sandbox Code Playgroud)
此解决方案的问题在于,次要刻度在日志空间中均匀分布:

我想设置图,所以我在线性空间中有均匀间隔的小刻度,这应该在该图上显示出不均匀的间距.
我知道我可以使用a手动设置次要刻度标签FixedFormatter,但是如果可能的话我宁愿不这样做,因为我将自动制作大量的绘图.
为后代添加:
从此答案:@JoeKington /sf/answers/1405575111/:
minorticks = p.norm(np.arange(1, 10, 2))
cb.ax.xaxis.set_ticks(minorticks, minor=True)
Run Code Online (Sandbox Code Playgroud)
这很烦人,您必须手动创建刻度位置,但它似乎有效。
| 归档时间: |
|
| 查看次数: |
2527 次 |
| 最近记录: |