Matplotlib colorbar背景和标签放置

时间:2013-08-23 12:44:05

标签: python matplotlib colorbar

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

Mathematica example plot

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

Mathematica example plot

但我仍有两个问题:

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

1 个答案:

答案 0 :(得分:18)

关于第二个问题:您可以使用负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()

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

labelpad的论点以点(1/72英寸)给出。 y接受[0, 1]中的值,0.0是下边框,1.0是上边框。

结果:

Script Output