我的问题here的后续问题。我每10行创建一次红色的等高线,但现在我想在彩色栏中有这些线条。我知道你可以通过以下方式把这些行添加到colobar中:
CS2 = pyplot.contour(X,Y,Z,locator=ticker.LogLocator(), colors=color_levels, levels=levels, lw=2,norm=colors.LogNorm(),vmin=1,vmax =Z.max())
cbar.add_lines(CS2)(我不认为需要在这里指定所有变量,只是将来自contour函数的结果添加到cbar thingy中。
然而,这将导致添加所有的轮廓线到色条,但我只是想要红色的。切割它们不起作用:
>>> CS2=CS2[5::10]
AttributeError: QuadContourSet instance has no attribute '__getitem__'是否可以只向色条添加某些线条?
发布于 2015-03-25 11:07:34
我自己想出来的,但不是用最能想象的方式。我创建了两个不同的轮廓图,一个是黑色的,另一个是红线。只有红色的给色条。它很有效,但我认为它可以更好一些。守则的有关部分如下:
levels = np.logspace(0,np.log10(Z.max()), 100 )[30:80]
levels_black = [level for i,level in enumerate(levels) if (i+5) % 10 != 0]
levels_red = [level for i,level in enumerate(levels) if (i+5) % 10 == 0]
CS2_black = pyplot.contour(X,Y,Z,locator=ticker.LogLocator(), colors='k', levels=levels_black, lw=2,norm=colors.LogNorm(),vmin=1,vmax =Z.max())
CS2_red = pyplot.contour(X,Y,Z,locator=ticker.LogLocator(), colors='r', levels=levels_red, lw=2,norm=colors.LogNorm(),vmin=1,vmax =Z.max())
cbar.add_lines(CS2_red)这将产生如下图像,完全符合我的要求:

https://stackoverflow.com/questions/29252361
复制相似问题