在matplotlib中创建离散色条

在matplotlib中创建离散色条,第1张

在matplotlib中创建离散色条

实际上,第一个论点

colorbar
应该是
ScalarMappable
,这将是散点图
PathCollection
本身。

设定
import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltimport pandas as pddf = pd.Dataframe({"x" : np.linspace(0,1,20),        "y" : np.linspace(0,1,20),        "cluster" : np.tile(np.arange(4),5)})cmap = mpl.colors.ListedColormap(["navy", "crimson", "limegreen", "gold"])norm = mpl.colors.BoundaryNorm(np.arange(-0.5,4), cmap.N)
熊猫密谋

问题是熊猫无法

ScalarMappable
直接为您提供访问权限。因此,您可以从轴上的集合列表中捕获它,如果仅存在一个集合,这将很容易
ax.collections[0]

fig, ax = plt.subplots()df.plot.scatter(x='x', y='y', c='cluster', marker='+', ax=ax,      cmap=cmap, norm=norm, s=100, edgecolor ='none', alpha=0.70, colorbar=False)fig.colorbar(ax.collections[0], ticks=np.linspace(0,3,4))plt.show()
Matplotlib绘图

可以考虑直接使用matplotlib绘制散点图,在这种情况下,您可以直接使用

scatter
函数的返回值作为的参数
colorbar

fig, ax = plt.subplots()scatter = ax.scatter(x='x', y='y', c='cluster', marker='+', data=df,     cmap=cmap, norm=norm, s=100, edgecolor ='none', alpha=0.70)fig.colorbar(scatter, ticks=np.linspace(0,3,4))plt.show()

两种情况下的输出是相同的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5640099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存