Contourplot matplotlib与每个第n行不同的颜色

时间:2015-03-20 12:35:46

标签: python matplotlib

是否有可能在Matplitlib中创建一个轮廓图,每个第n行的颜色与其他颜色不同?我想有这个,因为这个较少的轮廓线显示的细节不够,所有相同的颜色使它太拥挤。例如: Galaxy without fancy contourlines

1 个答案:

答案 0 :(得分:4)

是的,你可以。您必须为每个级别指定颜色:

levels = np.logspace(0, np.log10(Z.max()), 100 )[30:80]
color_levels = ['r' if (i+5) % 10 == 0 else 'k' for i in range(len(levels))]
pyplot.contour(X, Y, Z, locator=ticker.LogLocator(), colors=color_levels, levels=levels, lw=2, norm=colors.LogNorm(), vmin=1, vmax=Z.max())

此处Z的{​​{1}}结果为np.histogram2d()。底层histogram2d用imshow绘制。关卡上的[30:80]切片是为了防止图像中间和边缘混乱。

当然,您可以将% 10定义中的color_levels编辑为您喜欢的每个整数。

这导致:

Galaxy with red contourlines