我正在使用Matplotlib将一些2D数据绘制为pcolor()
,然后将其与contour()
重叠。
当我使用colorbar()
时,我会得到以下颜色栏中的一个或另一个:
如何使轮廓水平(左)的水平线也显示在彩色条(右)?
答案 0 :(得分:4)
根据您修改后的问题,我明白您的意思。这仍然可以使用add_lines
完成。此功能将非填充等高线图中的线条添加到颜色条。可以找到文档here。
因此,首先根据您的pcolor
图定义颜色条,稍后您可以将contour
中的线条添加到该颜色条:
import numpy
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
#Generate data
delta = 0.025
x = numpy.arange(-3.0, 3.0, delta)
y = numpy.arange(-2.0, 2.0, delta)
X, Y = numpy.meshgrid(x, y)
Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
# difference of Gaussians
Z = 10.0 * (Z2 - Z1)
#Plot
fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1)
PC = ax1.pcolor(X, Y, Z)
CF = ax1.contour(X, Y, Z, 50, colors = "black")
cbar = plt.colorbar(PC)
cbar.add_lines(CF)
plt.show()