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

Patricia Arquette
发布: 2024-10-25 06:37:02
原创
563 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!