我在使用matplotlib在Python中为我的情节创建一个颜色条时遇到了问题。我正在使用一个色彩地图,而不是对所绘制的所有数据进行着色,而是根据我未绘制的值为绘图提取颜色。希望这是有道理的.. 因此,我在一个for循环,每次创建一个基于某个参数的颜色的情节。像这样(的数据是创建一个兆瓦的例子,我的数据是比较复杂):在我的matplotlib旁边创建一个颜色条,不使用颜色贴图来绘制数据
import matplotlib as mpl
from matplotlib import pyplot as plt
import numpy as np
xdata = np.array(range(10))
parameter = [0.5, 0.3, 0.78, 0.21, 0.45] #random parameter example
cmap = mpl.cm.get_cmap('jet')
for i in range(len(parameter)):
clr = cmap(parameter(i))
plt.plot(xdata,xdata**i,c=clr)
plt.show()
现在,我想是一个侧面的彩条(或实际上是两个,但这是另一个问题,我想),它显示喷射颜色映射和相应的值。这些值需要缩放到新的最小值和最大值。
到目前为止,我已经发现了下面的,但我不明白它足以将其应用到我自己的问题:
Getting individual colors from a color map in matplotlib 哪位告诉我如何提取颜色并展示了如何创建标准化colormap
Colorbar only 哪应该告诉我如何在不使用绘图数据的情况下添加一个颜色条,但我对此不够了解。我的问题是创建轴。我不明白这部分,如果我想把色条放在我的情节旁边。在这个例子中,他们创建了一个处理fig
的图形,但在我的情况下,该图形是在我做plt.imshow(image)
时创建的,因为这是我开始的,然后我正在绘制图像。我不能在这里使用fig.add_axes
。
我希望你能帮助我。如果我也可以创建一个“反转”的颜色条,那将是非常棒的。所以颜色是反方向的,或者是条的旁边的值。
在脚本中的任何位置,您都可以通过'fig = plt.gcf()'和轴通过'ax = plt.gca()'获得图形。因此,添加轴可以通过'plt.gcf()。add_axes(...)'完成。在绘制任何东西之前放置'fig = plt.figure()'也没有任何问题。每个标准色彩映射都有一个反转版本,其名称末尾有'_r',例如你可以使用'viridis_r'而不是'viridis'。 – ImportanceOfBeingErnest
谢谢,这听起来像我所需要的!很遗憾,直到明天才能尝试,如果能解决问题,会让你知道。我应该想到gcf和gca,因为我已经使用过很多次了... -.- –
嘿,谢谢,这正是我需要的。我想我可以/应该知道,但我不能把它们放在一起,所以你真的帮助我在这里。如果你把它作为答案发布,我会投它的;-) –