在matplotlib中设置colorbar上的log scale会导致Value错误,我该如何修复它?

fdbelqdn  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(107)

我正在绘制一个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 vmaxAttributeError: 'Colorbar' object has no attribute '_boundaries'。我如何解决它?

vlf7wbxs

vlf7wbxs1#

如上所述,你的数据中可能有0个值。
在xarray函数调用中设置vmin是解决这个问题最简单/最快的方法。

.pcolormesh(ax=ax, norm=colors.LogNorm(), vmin=1e-1)

相关问题