首页  >  文章  >  后端开发  >  如何在 Matplotlib 中为散点图创建自定义离散颜色条?

如何在 Matplotlib 中为散点图创建自定义离散颜色条?

Patricia Arquette
Patricia Arquette原创
2024-10-25 06:37:02561浏览

How can you create a custom discrete colorbar for a scatterplot in Matplotlib?

离散化散点图的 Matplotlib 颜色条

在散点图中,连续颜色条可能并不总是足以表示离散数据。创建离散颜色条对于有效可视化底层模式至关重要。

为了实现这一点,Matplotlib 中的 BoundaryNorm 类可以用作散点图的标准化器。这确保了不同的值由唯一的颜色表示。

尝试将特定值设置为灰色时,自定义颜色栏会遇到一个挑战。为了解决这个问题,可以通过提取和覆盖颜色条目来修改现有的调色板。

<code class="python">cmaplist = [cmap(i) for i in range(cmap.N)]
# force the first color entry to be grey
cmaplist[0] = (.5, .5, .5, 1.0)</code>

修改调色板后,可以创建自定义颜色图。然后利用 BoundaryNorm 来定义分箱并相应地标准化数据。

<code class="python">cmap = mpl.colors.LinearSegmentedColormap.from_list(
    'Custom cmap', cmaplist, cmap.N)
bounds = np.linspace(0, 20, 21)
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)</code>

修改后的调色板和标准化到位后,可以渲染散点图。添加单独的轴来容纳颜色条,该颜色条经过自定义以显示离散边界及其相应的颜色。

<code class="python">scat = ax.scatter(x, y, c=tag, cmap=cmap, norm=norm)
ax2 = fig.add_axes([0.95, 0.1, 0.03, 0.8])
cb = plt.colorbar.ColorbarBase(ax2, cmap=cmap, norm=norm,
    spacing='proportional', ticks=bounds, boundaries=bounds, format='%1i')</code>

此方法可以创建自定义离散颜色条,可以有效地在散点图中传达离散数据,提供底层模式的更清晰的视觉表示。

以上是如何在 Matplotlib 中为散点图创建自定义离散颜色条?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn