【发布时间】:2014-10-24 10:10:32
【问题描述】:
我正在尝试在图表中添加颜色条,但我不明白它是如何工作的。问题是我通过以下方式制作自己的颜色代码:
x = np.arange(11)
ys = [i+x+(i*x)**2 for i in range(11)]
colors = cm.rainbow(np.linspace(0, 1, len(ys)))
和colors[i] 会给我一个新的颜色。然后我使用(自制)函数来选择相关数据并相应地绘制它们。这看起来像这样:
function(x,y,concentration,temperature,1,37,colors[0])
function(x,y,concentration,temperature,2,37,colors[1])
# etc
现在我想在颜色栏中添加颜色,并且可以更改标签。我该怎么做?
我见过几个示例,您将所有数据绘制为一个数组,并使用自动颜色条,但这里我将数据一一绘制(通过使用函数选择相关数据)。
编辑:
function(x,y,concentration,temperature,1,37,colors[0]) 看起来像这样(简化):
def function(x,y,c,T,condition1,condition2,colors):
import matplotlib.pyplot as plt
i=0
for element in c:
if element == condition1:
if T[i]==condition2:
plt.plot(x,y,color=colors,linewidth=2)
i=i+1
return
【问题讨论】:
-
我假设
function最终会调用“绘图”函数或类似函数。在那里你需要传递你的颜色。可以发function的内容吗? -
您不能删除问题中对
ys的引用吗?还是第一个框中的ys变成第二个框中的y? -
我对你的问题的理解:(1)你反复绘制一条曲线,其形状和颜色取决于一个参数,它是单调变化的; (2) 之后,您想使用 pl.colorbar 提示不同曲线的参数值。如果我是正确的,这很难做到,因为颜色条旨在与 pl.imshow 和 pl.countourf 而非 pl.plot 一起使用。也就是说,您应该能够使用两个子图,第一个子图是您的图,第二个子图是自己绘制的颜色条,正如 matplotlib.org/examples/api/colorbar_only.html 中所解释/举例说明的那样
-
感谢您的链接,只是我不明白该示例是如何工作的。在发布之前我已经看过这个例子,但我无法让它为我的目的工作。本例中的“cmap”是什么?它包含什么?什么是“规范”?
-
@KayJansen 这是一项复杂的任务,您要么在 SO 上找到一位好心的
matplotlib专家(我不是,抱歉),要么您主要靠自己。此外,我对您没有在问题中提及您之前的研究这一事实感到有些惊讶,但这是您在 SO 中的第一个问题......如果您打算闲逛,您最好阅读一些关于 提出好的问题。乔
标签: python matplotlib colorbar