使用颜色图在我的 matplotlib 图 w/o 旁边创建一个颜色条来绘制数据
Creating a colorbar next to my matplotlib plot w/o using the colormap to plot the data
我在使用 matplotlib 为 Python 中的绘图创建颜色条时遇到问题。我正在使用颜色图,不是为我绘制的所有数据着色,而是根据我未绘制的值为绘图提取颜色。希望这是有道理的..
所以我在一个 for 循环中,每次都根据某个参数用一种颜色创建一个图。像这样(数据是创建mwe的例子,我的数据比较复杂):
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
其中告诉我如何提取颜色并展示了如何创建标准化颜色图
Colorbar only
这应该告诉我如何在不使用绘制数据的情况下添加颜色条,但我对它的了解还不够。我的问题是轴的创建。如果我想把颜色条放在我的情节旁边,我不明白这部分。在示例中,他们创建了一个带有句柄 fig
的图形,但在我的例子中,图形是在我执行 plt.imshow(image)
时创建的,因为这是我开始的,然后我在图像上绘制。我不能在这里使用 fig.add_axes
。
我希望你能帮我解决这个问题。如果我也可以创建一个 'reversed' 颜色条,那就太好了。所以要么颜色是反向的,要么是条形旁边的值。
在脚本中的任何一点,您都可以通过 fig = plt.gcf()
获得图形,通过 ax=plt.gca()
获得轴。因此,可以通过 plt.gcf().add_axes(...)
.
添加轴
在绘制任何东西之前放置 fig=plt.figure()
也没有错。
请注意,在创建新轴后,plt.gca()
将 return 新轴,因此最好在添加新轴之前创建对主轴的引用。
获取图形和坐标轴供以后参考的便捷方法是通过
创建图形
fig, ax = plt.subplots()
色图:
每个标准颜色图都有一个反转版本,其名称末尾有 _r
,例如你可以使用 viridis_r
而不是 viridis
.
我在使用 matplotlib 为 Python 中的绘图创建颜色条时遇到问题。我正在使用颜色图,不是为我绘制的所有数据着色,而是根据我未绘制的值为绘图提取颜色。希望这是有道理的.. 所以我在一个 for 循环中,每次都根据某个参数用一种颜色创建一个图。像这样(数据是创建mwe的例子,我的数据比较复杂):
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 其中告诉我如何提取颜色并展示了如何创建标准化颜色图
Colorbar only
这应该告诉我如何在不使用绘制数据的情况下添加颜色条,但我对它的了解还不够。我的问题是轴的创建。如果我想把颜色条放在我的情节旁边,我不明白这部分。在示例中,他们创建了一个带有句柄 fig
的图形,但在我的例子中,图形是在我执行 plt.imshow(image)
时创建的,因为这是我开始的,然后我在图像上绘制。我不能在这里使用 fig.add_axes
。
我希望你能帮我解决这个问题。如果我也可以创建一个 'reversed' 颜色条,那就太好了。所以要么颜色是反向的,要么是条形旁边的值。
在脚本中的任何一点,您都可以通过 fig = plt.gcf()
获得图形,通过 ax=plt.gca()
获得轴。因此,可以通过 plt.gcf().add_axes(...)
.
添加轴
在绘制任何东西之前放置 fig=plt.figure()
也没有错。
请注意,在创建新轴后,plt.gca()
将 return 新轴,因此最好在添加新轴之前创建对主轴的引用。
获取图形和坐标轴供以后参考的便捷方法是通过
fig, ax = plt.subplots()
色图:
每个标准颜色图都有一个反转版本,其名称末尾有 _r
,例如你可以使用 viridis_r
而不是 viridis
.