我可以在matplotlib的情节左侧放置一个垂直颜色条吗?

Xav*_*uvw 1 python matplotlib

对颜色条法matplotlib命令总结我知道关键字参数orientation := 'horizontal' | 'vertical'作为参数放置一个水平下面的情节或垂直它分别.

然而,在我的情况下,我宁愿将颜色条放在默认的另一侧(如果可能的话,没有太多的摆弄......).

我怎么能这样编码?我错过了一些明显的功能吗?

jgh*_*der 12

我找到了另一种避免手动编辑轴位置的方法,而是允许您使用 location 关键字(最初从此处改编的方法)将颜色条链接到现有的绘图轴。

location 参数旨在用于引用列表中多个轴的颜色条(如果颜色条仅给出一个轴,则会抛出错误),但如果您只是将一个轴放在列表中,它将允许您使用论点。您可以使用以下代码作为示例:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)
axp = ax.imshow(np.random.randint(0, 100, (100, 100)))
cb = plt.colorbar(axp,ax=[ax],location='left')
plt.show()
Run Code Online (Sandbox Code Playgroud)

这产生了这个情节:

阴谋

  • 我收到错误:“有一个意外的关键字参数‘位置’” (4认同)
  • @wander95 如果我只输入“ax=ax”,我也是。如果使用“ax=[ax]”,问题就解决了,如答案所示。 (3认同)
  • 哇,这真是一个很棒的黑客。感谢您添加迟到的答案!多年来,必须手动指定轴位置的方法一直困扰着我。你是一个传奇。 (2认同)

arm*_*ita 6

我认为最简单的方法是确保颜色条在自己的轴上.你可以从这个例子中适应:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)
axp = ax.imshow(np.random.randint(0, 100, (100, 100)))
# Adding the colorbar
cbaxes = fig.add_axes([0.1, 0.1, 0.03, 0.8])  # This is the position for the colorbar
cb = plt.colorbar(axp, cax = cbaxes)
plt.show()
Run Code Online (Sandbox Code Playgroud)

结果如下:

Matplotlib colorbar位于图的左侧