matplotlib 使用透明颜色时更改颜色栏的背景色

js81xvg6  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(116)

内容:Matplotlib散点图。当在散点图中使用透明度(alpha <1)和非白色的轴背景色时,相应颜色条中的颜色看起来不同。这在下图中清晰可见:右边的颜色条看起来“太亮”。然而,设置颜色条轴的背景色不会改变这一点。
那么问题来了:我怎样才能用透明色改变颜色条的背景色呢?
我使用Python 2.7.3和Matplotlib 1.3.1(在Ubuntu 12.04上)

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. np.random.seed(10) #for reproducability
  4. n = 10
  5. ticks = range(n)
  6. data = np.hstack((np.random.rand(50,2),np.random.randint(0,n,(50,1))))
  7. colors = plt.cm.get_cmap('jet',n)(ticks)
  8. lcmap = plt.matplotlib.colors.ListedColormap(colors)
  9. plt.figure(figsize=(8,4))
  10. ax = plt.subplot(121)
  11. plt.scatter(data[:,0],data[:,1], c=data[:,2], s=40, alpha=0.3,
  12. edgecolor='none', cmap=lcmap)
  13. plt.colorbar(ticks=ticks)
  14. plt.clim(-0.5,9.5)
  15. ax = plt.subplot(122)
  16. plt.scatter(data[:,0],data[:,1], c=data[:,2], s=40, alpha=0.3,
  17. edgecolor='none', cmap=lcmap)
  18. cb = plt.colorbar(ticks=ticks)
  19. ax.set_axis_bgcolor((0.2,0.2,0.2))
  20. cb.ax.set_axis_bgcolor((0.2,0.2,0.2))
  21. plt.clim(-0.5,9.5)
  22. plt.show()

ui7jx7zq

ui7jx7zq1#

把这条线放在你的plt.clim电话之后,

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

相关问题