【问题标题】:Matplotlib: change background color of colorbar (when using transparent colors)Matplotlib:更改颜色条的背景颜色(使用透明颜色时)
【发布时间】:2015-01-07 04:38:17
【问题描述】:

上下文:Matplotlib 散点图。 在散点图中使用透明度 (alpha

那么问题:如何将彩条的背景颜色改为透明色?

我正在使用 Python 2.7.3 和 Matplotlib 1.3.1(在 Ubuntu 12.04 上)

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(10) #for reproducability

n = 10
ticks = range(n)
data = np.hstack((np.random.rand(50,2),np.random.randint(0,n,(50,1))))
colors = plt.cm.get_cmap('jet',n)(ticks)
lcmap = plt.matplotlib.colors.ListedColormap(colors)

plt.figure(figsize=(8,4))
ax = plt.subplot(121)
plt.scatter(data[:,0],data[:,1], c=data[:,2], s=40, alpha=0.3, 
        edgecolor='none', cmap=lcmap)
plt.colorbar(ticks=ticks)
plt.clim(-0.5,9.5)

ax = plt.subplot(122)
plt.scatter(data[:,0],data[:,1], c=data[:,2], s=40, alpha=0.3, 
        edgecolor='none', cmap=lcmap)
cb = plt.colorbar(ticks=ticks)
ax.set_axis_bgcolor((0.2,0.2,0.2))
cb.ax.set_axis_bgcolor((0.2,0.2,0.2))
plt.clim(-0.5,9.5)

plt.show()

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    将此行放在 您的 plt.clim 电话之后,

    cb.patch.set_facecolor((0.2, 0.2, 0.2, 1.0))
    

    【讨论】:

    • 太棒了,这就是诀窍。不过,我不太清楚为什么。
    • 老实说,我也不知道为什么。显然,他们将此补丁用于颜色条背景,而不是标准的axisbg。
    • 好的,谢谢你的解释。有趣的是,使补丁完全透明(cb.patch.set_alpha(0))并没有改变任何东西......
    • 是的,我也注意到了。大概@tcaswell 会知道答案。
    猜你喜欢
    • 2016-03-05
    • 2019-09-29
    • 2017-06-06
    • 1970-01-01
    • 2012-11-05
    • 2012-06-26
    • 2021-07-02
    • 2012-07-10
    • 1970-01-01
    相关资源
    最近更新 更多