Seaborn绘制2D直方图的默认色卡是什么?如何应用到Matplotlib hist2d?
你可以直接从seaborn库中导出它默认的colormap,配合对数归一化设置,就能和seaborn绘图效果完全一致,操作方法如下:
首先要注意两个核心匹配点:
- seaborn的2D统计绘图默认使用
rocket调色板,你可以直接将其转为matplotlib支持的cmap对象 - seaborn的2D直方图默认对计数值做对数缩放,忽略这个设置的话哪怕cmap正确,颜色深浅分布也会和seaborn结果有明显差异
完整可运行的代码示例:
import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import LogNorm import seaborn # 你的原始数据定义 num_samples = int(8e+4) u0 = np.random.rand(num_samples) E_incid = 90*np.random.rand(num_samples)+10 # 获取seaborn默认配色 sns_cmap = seaborn.color_palette("rocket", as_cmap=True) # 绘制2D直方图,完全匹配seaborn效果 plt.hist2d(u0, E_incid, bins=50, cmap=sns_cmap, norm=LogNorm()) plt.colorbar() plt.show()
如果你不想保留seaborn依赖,也可以参考rocket配色的参数自定义cmap,不过直接调用seaborn的接口更简单,不会出现配色偏差。
内容的提问来源于stack exchange,提问作者Imahn
相关产品推荐
相关产品推荐

