Matplotlib tricontourf 和 colorbar 的水平间距不均匀?

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

我正在尝试将一些不规则间隔的数据插值并绘制为等高线图。我想手动将轮廓级别设置为一些任意值。我遇到的问题是颜色条。我希望每个级别都有自己的颜色,但是当我手动将我想要的轮廓级别的数组传递给

tricontourf
时,颜色条将除一个级别之外的所有级别设置为相同的颜色,并将最终级别设置为顺序的下一个颜色。

用于生成图的数据

我的代码:

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt('testdata.txt')

x = data[:,0]
y = data[:,1]
z = data[:,2]

levels = [0, 1, 2, 3, 4, np.max(z)]

plt.figure()

cntr1 = plt.tricontourf(x,y,z, levels=levels, cmap="viridis_r")
plt.colorbar(cntr1, ticks=levels)

plt.show()

前 4 个级别的结果图都是相同的颜色(我希望它们是不同的颜色):

result

python matplotlib contour colorbar contourf
© www.soinside.com 2019 - 2024. All rights reserved.