我正在尝试将一些不规则间隔的数据插值并绘制为等高线图。我想手动将轮廓级别设置为一些任意值。我遇到的问题是颜色条。我希望每个级别都有自己的颜色,但是当我手动将我想要的轮廓级别的数组传递给
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 个级别的结果图都是相同的颜色(我希望它们是不同的颜色):