去除Matplotlib图表中颜色条的边框

18

如何去除色条上的边框(或使其变窄)?

我尝试了以下几种组合:

cb = plt.colorbar(im3,drawedges=False) #or True with next two lines
#cb.outline.set_linewidth(0)
#cb.dividers.set_linewidth(0)

cb.solids.set_rasterized(True)
cb.solids.set_edgecolor("face")

#Im saving as pdf
plt.savefig("thing.pdf",dpi=1000, bbox_inches='tight')
有些在matplotlib图像中查看时很有帮助,但保存为pdf后情况会更糟。

enter image description here


输入图像描述


1
这个有帮助吗:http://matplotlib.1069221.n5.nabble.com/howto-turn-off-colorbar-frame-td27153.html - darthbith
@darthbith 它完全删除了它。有没有办法对此(以及刻度)进行更多的控制?虽然这比没有好。 - user1830663
1个回答

31

cb.outline.set_visible()设置为False可以移除图形和保存的pdf中的轮廓线。我观察到将线宽设置为较小的值也会反映在输出文件中。

import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(2,2)
im3 = plt.imshow(data)

cb = plt.colorbar(im3)

cb.outline.set_visible(False)

# this worked on matplotlib 1.3.1
#cb.outline.set_linewidth(0.05)

cb.set_ticks([])

#Im saving as pdf
plt.savefig("thing.pdf",dpi=1000, bbox_inches='tight')

PNG输出,但PDF也同样有效。


1
我使用了 cb.set_ticks([]) 来移除刻度,但无法影响其宽度。有人知道如何做吗? - snake_charmer
cb.ax.tick_params(length=MYLENGTH) 看起来是有效的。在此处查看其他选项:https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.tick_params.html - MRule

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接