Matplotlib 颜色条背景和标签放置
Posted
技术标签:
【中文标题】Matplotlib 颜色条背景和标签放置【英文标题】:Matplotlib colorbar background and label placement 【发布时间】:2013-08-26 12:41:00 【问题描述】:直到最近,我一直在使用 Mathematica 进行绘图。虽然这真的很痛苦,而且一切都必须手动完成,但结果非常接近我想要的。一个例子如下:
我真的很喜欢颜色条背景中的灰色圆角矩形。虽然在 Mathematica 中必须手动调整所有内容,但 matplotlib 更加自动化并且已经产生了不错的结果。
但是我还有两个问题:
-
我不知道如何在背景中做一个圆角矩形。我查看了 fancybbox 补丁,但没有让它像我想要的那样与颜色条一起工作。获得 Mathematica 盒子之类的东西的最佳方法是什么?对于情节中的传说,似乎有一个花哨的 bbox 选项......但不是用于颜色条
当我使用“小号”(
我期待任何指向正确方向的建议:)。
【问题讨论】:
***.com/questions/15882249/… 请给我们看代码。 旁白:非常华丽的数据。 【参考方案1】:对于第二个问题:您可以使用负的 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
是上边框。
结果:
【讨论】:
y
不限于区间[0.0, 1.0]
。它可以采用任何浮点数/整数。如果y > 1.0
,标签将放置在轴的顶部上方,如果y < 0.0
,标签将放置在轴的底部下方。轴坐标已标准化,这意味着0.0
是轴范围的“起点”,1.0
是“终点”。
要明确一点:[0, 1]
是 间隔表示法,而不是列表表示法。因此这意味着从0
到1
,包括在内。这适用于上面的答案和评论。
你能告诉我在哪里可以找到y
和labelpad
这些参数,因为我在documentation 或源代码中都没有找到它们?
我偶然发现cb.set_label
实际上是一个text,因此y
是文本属性。仍然想知道如何确定在此page 中找到的**kw
的更多详细信息。以上是关于Matplotlib 颜色条背景和标签放置的主要内容,如果未能解决你的问题,请参考以下文章
matplotlib自定义设置plt.colorbar函数配置颜色条的刻度数实战:自定义设置颜色条刻度并为刻度值进行命名和标签化