在 matplotlib 中的颜色条上设置对数比例会引发值错误,如何修复它?

问题描述 投票:0回答:1

我正在使用我想要在日志中显示的颜色条绘制 xarray 数据集,我尝试使用以下代码 -

from cdasws import CdasWs
from cdasws.datarepresentation import DataRepresentation
cdas = CdasWs()
import matplotlib.colors as colors
import matplotlib.pyplot as plt

stereo_dataset = wind_dataset = cdas.get_datasets(observatoryGroup='STEREO')

stereo_data = cdas.get_data('STEREO_LEVEL2_SWAVES', ['avg_intens_ahead'],
                     '2020-07-11T02:15:00Z', '2020-07-11T02:50:00Z',
                     dataRepresentation = DataRepresentation.XARRAY)[1]
# stereo_data
sorted_data = stereo_data.avg_intens_ahead.sortby('frequency')

sorted_data.transpose().plot.pcolormesh(ax=ax3, cbar_kwargs={"label":"STEREO-A"}, norm=colors.LogNorm())

我收到以下错误

ValueError: Invalid vmin or vmax
AttributeError: 'Colorbar' object has no attribute '_boundaries'
。我该如何解决?

python matplotlib normalization
1个回答
0
投票

如上所述,您的数据中可能有 0 个值。

在 xarray 函数调用中设置 vmin 是解决该问题的最简单/最快的方法。

.pcolormesh(ax=ax, norm=colors.LogNorm(), vmin=1e-1)
© www.soinside.com 2019 - 2024. All rights reserved.