【发布时间】:2020-05-05 19:18:09
【问题描述】:
我正在制作一些交互式绘图,我想添加一个颜色条图例。我不希望颜色条位于它自己的轴上,所以我想将它添加到现有的轴上。我在执行此操作时遇到了困难,因为我发现的大多数示例代码都为颜色条创建了一个新轴。
我使用matplotlib.colorbar.ColorbarBase 尝试了以下代码,它向现有轴添加了一个颜色条,但它给了我奇怪的结果,我无法弄清楚如何指定颜色条的属性(例如,在放置的轴以及它的大小)
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 仍然不能满足我的要求,而且我仍然不知道如何调整颜色栏的属性。
fig.colorbar(s, ax=ax, cax=ax)
假设我想让颜色条位于左上角,大约在绘图顶部的一半处延伸。我该怎么做呢?
我最好为此编写一个自定义函数,也许使用LineCollection?
【问题讨论】:
-
我没有答案。但是,为什么要让颜色条成为现有轴的一部分,而不是给它一个新轴?
-
@tnknepp 我正在使用缩放/平移、打开和关闭绘图等来制作交互式绘图。我不必为颜色条创建新轴会更容易跨度>
-
你为什么不能直接使用
fig.colorbar(ax=ax)? -
@tom 这会为颜色条创建一个新轴。执行 fig.colorbar(ax=ax, cax=ax) 不会创建新轴,但会创建类似的奇怪图。我将添加一个情节的示例
标签: python matplotlib