如何在Matplotlib条形图中应用magma颜色映射?
为Seaborn条形图设置magma颜色映射调色板
我正在使用Matplotlib绘制条形图,现有代码如下:
#Plotando as descobertas acima e mostrando a média de 1 com uma linha branca. plt.figure(figsize=(14,7)) ax11 = sns.barplot(x=top_atores['VAC'], y=top_atores['Nome Ator']) plt.axvline(1, ls='-', color='white', linewidth=3) plt.xlabel('VAC', fontsize=12) plt.ylabel('Ator', fontsize=12) plt.title('VAC por Ator Comparado à Média', fontsize=14) plt.savefig('VACAtor');
生成的图表使用了默认调色板,我希望为该条形图使用magma颜色映射调色板,但不清楚如何在代码中实现。
实现方案
方法1:直接指定调色板参数
在sns.barplot()函数中添加palette='magma'参数,即可快速应用magma调色板:
#Plotando as descobertas acima e mostrando a média de 1 com uma linha branca. plt.figure(figsize=(14,7)) # 添加palette参数指定magma调色板 ax11 = sns.barplot(x=top_atores['VAC'], y=top_atores['Nome Ator'], palette='magma') plt.axvline(1, ls='-', color='white', linewidth=3) plt.xlabel('VAC', fontsize=12) plt.ylabel('Ator', fontsize=12) plt.title('VAC por Ator Comparado à Média', fontsize=14) plt.savefig('VACAtor');
方法2:生成数值关联的渐变色彩
如果希望条形颜色随VAC数值大小呈现渐变效果,可以结合颜色映射和归一化处理实现:
import matplotlib.colors as mcolors plt.figure(figsize=(14,7)) # 基于VAC列的数值范围初始化归一化工具 norm = mcolors.Normalize(vmin=top_atores['VAC'].min(), vmax=top_atores['VAC'].max()) # 获取magma颜色映射实例 cmap = plt.get_cmap('magma') # 为每个VAC值匹配对应的颜色 colors = [cmap(norm(value)) for value in top_atores['VAC']] ax11 = sns.barplot(x=top_atores['VAC'], y=top_atores['Nome Ator'], palette=colors) plt.axvline(1, ls='-', color='white', linewidth=3) plt.xlabel('VAC', fontsize=12) plt.ylabel('Ator', fontsize=12) plt.title('VAC por Ator Comparado à Média', fontsize=14) plt.savefig('VACAtor');
第一种方法会使用magma调色板的离散色彩,第二种方法能让颜色随数据值变化呈现渐变,可根据需求选择。
内容的提问来源于stack exchange,提问作者Luana Hilbert
相关产品推荐
相关产品推荐

