Matplotlib色条背景和标签位置

2024-05-14 06:42:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Mathematica example plot

我真的很喜欢彩色条背景中的灰色圆形矩形。matplotlib在Mathematica中必须手动调整所有内容,但它的自动化程度要高得多,而且已经产生了很好的结果。

Mathematica example plot

但我还有两个问题:

  1. 我不知道如何在背景中做一个圆角矩形。我看了一下fancybox补丁,但没能像我想的那样让它与colorbar一起工作。什么是最好的方法得到像Mathematica盒子这样的东西?对于故事情节中的传奇人物来说,似乎有一个奇特的bbox选择。。。但不是彩色条
  2. 当我使用“小符号”(<;)时,colorbar的标签向右移动太远。我怎样才能调整这个(甚至可能像Mathematica图中那样“介于”数字之间)?

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


Tags: 内容matplotlib绘制圆形手动例子彩色背景
1条回答
网友
1楼 · 发布于 2024-05-14 06:42:51

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

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

相关问题 更多 >