如何用edgecolors制作matplotlib等高线?

时间:2015-01-27 17:51:04

标签: matplotlib contour

我想在matplotlib.pyplot.contour的行中添加edgecolors。尝试边缘颜色和markeredgecolor,没有影响。有谁知道解决方案?

1 个答案:

答案 0 :(得分:1)

对于这种情况,您需要绘制数据集两次,这是第一次使用更粗的线宽(或更大的标记,具体取决于您考虑的图表类型)以及“外”线/标记的颜色。然后,再次绘制数据集,但使用较小的线条/标记和不同的颜色,内部线条的颜色。

以下是您可以复制粘贴到学习的示例。该示例借鉴了matplotlib contour demo

import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

# generate some sample data
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, delta)
X, Y = np.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)

plt.figure()
# plot the outer lines thicker
whites = plt.contour(X, Y, Z, colors='white', linewidths=7)
plt.gca().set_axis_bgcolor('red')  # you spoke of a red bgcolor in the axis (yuck!)
# and plot the inner lines thinner
CS = plt.contour(X, Y, Z, colors='red', linewidths=3)

这是许多体面图中常用的技术,用于突出显示数据(即使这个例子看起来很糟糕)。