【问题标题】:Why setting fixed colorbar failed in this case?为什么在这种情况下设置固定颜色条失败?
【发布时间】:2018-10-02 00:30:27
【问题描述】:

我正在尝试使用相同的颜色条制作一堆极坐标图。但是,设置绘图限制后颜色条会有所不同。在下面的代码sn-p中,我随机创建了5张地图,但是绘制在一个固定的范围内,但是输出的数字在colorbar中还是不一样的。

from numpy import linspace, pi, ndarray, random
import matplotlib
matplotlib.use('Agg')
from matplotlib.pyplot import figure

lon = linspace(start=0, stop=2*pi, num=100)
colat = linspace(start=0, stop=9, num=10)
emission = ndarray(shape=(10, 100, 5), dtype=float)
for t in range(5):
    emission[:, :, t] = random.rand(10, 100)

fig = figure(num='emission', figsize=(15, 15))
em_pos = [0.05, 0.1, 0.8, 0.8]
emc_pos = [0.9, 0.1, 0.05, 0.8]
for t in range(5):
    fig.clear()

    ax = fig.add_subplot(121, polar=True, position=em_pos)
    axcont = ax.contourf(lon, colat, emission[:, :, t], vmin=0, vmax=2)

    axc = fig.add_subplot(122, position=emc_pos)
    fig.colorbar(mappable=axcont, cax=axc)

    fig.savefig(fname='emission{0:d}.png'.format(t), format='png')

【问题讨论】:

  • 请尝试将您的问题转换为Minimal, Complete, and Verifiable example。这将改善您获得(好的)答案的变化,因为其他人可以更轻松地帮助您。它有助于这个平台成为一个很好的参考。

标签: matplotlib clim


【解决方案1】:

问题似乎解决了。不是colorbar的问题,而是contourf的问题。当我更换时

ax.contourf(lon, colat, emission[:, :, t], vmin=0, vmax=2)

ax.pcolormesh(lon, colat, emission[:, :, t], vmin=0, vmax=2)

然后颜色条显示正确的范围。确实这不是一个完整的解决方案,pcolormesh 在某些方面与contourf 不同,但它满足了我的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2014-05-31
    • 2021-10-07
    • 2021-10-11
    相关资源
    最近更新 更多