实际上,第一个论点
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]。
Matplotlib绘图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绘制散点图,在这种情况下,您可以直接使用
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()
两种情况下的输出是相同的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)