Я делаю некоторые интерактивные сюжеты, и я хотел бы добавить легенду цветового бара. Я не хочу, чтобы colorbar был в своих собственных осях, поэтому я хочу добавить его к существующим осям. У меня возникают трудности с этим, так как большая часть кода примера, который я нашел, создает новые оси для colorbar.
Я пробовал следующий код с помощью matplotlib.colorbar.ColorbarBase
, который добавляет цветную панель к существующим осям, но это дает мне странные результаты, и я не могу понять, как указать атрибуты colorbar (например, где на оси размещены и какой размер)
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.cm import coolwarm
import numpy as np
x = np.random.uniform(1, 10, 10)
y = np.random.uniform(1, 10, 10)
v = np.random.uniform(1, 10, 10)
fig, ax = plt.subplots()
s = ax.scatter(x, y, c=v, cmap=coolwarm)
matplotlib.colorbar.ColorbarBase(ax=ax, cmap=coolwarm, values=sorted(v),
orientation="horizontal")
Использование fig.colorbar
вместо matplotlib.colorbar.ColorbarBase
по-прежнему не дает мне совершенно то, что я хочу, и я до сих пор не знаю, как настроить атрибуты colorbar.
fig.colorbar(s, ax=ax, cax=ax)
Скажем, я хочу иметь цветную панель в левом верхнем углу, растянувшись примерно на полпути в верхней части сюжета. Как мне это сделать?
Мне лучше написать пользовательскую функцию для этого, возможно, используя LineCollection
?