簡體   English   中英

定位顏色條-Matplotlib

[英]Positioning color bars - Matplotlib

我有一個圖,其中合並了兩個數據。 鑒於此,我必須顯示兩個不同的顏色條,每個數據一個。 我目前正在按以下方式繪制數據:

plt.figure()

# Data 1
fig = plt.imshow(data1, interpolation='nearest', cmap='binary', vmin=0, vmax=1)

# Plotting just the nonzero values of data2
data2_x = numpy.nonzero(data2)[0]
data2_y = numpy.nonzero(data2)[1]

pts = plt.scatter(data2_x, data2_y, marker='s', c=data2[data2_x, data2_y])

plt.colorbar(pts)
plt.colorbar(fig, orientation="horizontal")

這是我得到的情節:

在此處輸入圖片說明

但是,我想重新設置顏色條的位置,使其具有以下內容(由Photoshop制成):

在此處輸入圖片說明

那可能嗎?

先感謝您。

做到這一點的“最簡單”方法可能是手工布置要用於顏色條的軸(通過cbax = fig.add_axes([....]) )。 然后,您可以將該軸傳遞給顏色欄調用:

就像是:

from matplotlib import pyplot as plt
import numpy as np

fig = plt.figure(figsize=(8, 8))
ax = fig.add_axes([.1, .1, .8, .8])
im = ax.imshow(np.random.rand(150, 150), cmap='gray', interpolation='none')
sc = ax.scatter(2 + 146 * np.random.rand(150), 2 + 146 * np.random.rand(150),
                c=np.random.rand(150), cmap='Accent', s=50, lw=0)

ax_cb1 = fig.add_axes([.1, .05, .8, .02])
ax_cb2 = fig.add_axes([.92, .1, .02, .8])

cb1 = fig.colorbar(im, cax=ax_cb1, orientation='horizontal')
cb1.ax.xaxis.set_label_position('top')
cb2 = fig.colorbar(sc, cax=ax_cb2, orientation='vertical')

在此處輸入圖片說明

您可以使用斧頭關鍵字將顏色欄鏈接到軸,plt.gca()為您提供當前軸:

plt.colorbar(object1, ax=plt.gca())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM