Matplotlib colorbar背景和标签放置

oli*_*oli 11 python matplotlib colorbar

直到最近,我一直在使用Mathematica作为我的情节.虽然这是一个真正的痛苦,一切都必须手动完成,结果非常接近我想要的.一个例子如下:

Mathematica示例图

我真的很喜欢彩条背景中的灰色圆角矩形.虽然必须在Mathematica中手动调整所有内容,但matplotlib更加自动化,并且已经产生了很好的结果.

Mathematica示例图

但是我还有两个问题:

  1. 我不知道如何在后台做一个圆角矩形.我查看了fancybbox补丁,但没有像我想要的那样使用彩条.获得类似Mathematica盒子的最佳方法是什么?对于图中的图例,似乎有一个花哨的bbox选项...但不适用于彩条
  2. 当我使用"较小的符号"(<)时,颜色条的标签向右移动太远.我怎样才能调整这个(甚至可以在Mathematica图中"插入"数字)?

我期待任何指向正确方向的建议:).

mwi*_*.me 20

对于第二个问题:您可以使用负值labelpad将标签移回标签,如下所示:

import numpy as np
import matplotlib.pyplot as plt

data = np.linspace(0, 10, num=256).reshape(16,16) 

cf = plt.contourf(data, levels=(0, 2.5, 5, 7.5, 10))
cb = plt.colorbar(cf)

cb.set_ticklabels([r'$<10^{0}$', 1, 2, r'$10^{14}$', r'$10^{14}+12345678$'])
cb.set_label(r'$n_e$ in $m^{-3}$', labelpad=-40, y=0.45)

plt.show()
Run Code Online (Sandbox Code Playgroud)

使用该参数y,您还可以向上或向下移动标签以获得更好的对称性.

参数labelpad以点(1/72英寸)给出.y接受值[0, 1],0.0是下边框和1.0上边框.

结果:

脚本输出