簡體   English   中英

Matplotlib:添加從完全透明到全彩色的自定義顏色條(刪除工件)

[英]Matplotlib: Add a custom colorbar that runs from full transparent to full color (remove artifacts)

我正在嘗試為我的matplotlib圖添加一個自定義顏色條,從完全透明(白色)到全彩色(mediumpurple)。

我走得很遠,但仍有一些問題。 我這樣做的方式,在每個補丁之間創建可見的線條。 當我嘗試使顏色條看起來流暢時,這會產生偽影。

fig, ax = plt.subplots(figsize=(10, 10))
max_val = 4
transparency_ticks = 500
color = mpl.colors.to_rgba(color)
cmap = mpl.colors.ListedColormap([(*color[:3], (1+a)/transparency_ticks) for a in range(transparency_ticks)])
norm = mpl.colors.Normalize(vmin=0, vmax=max_val)
cax = fig.add_axes([0.8, 0.17, 0.05, 0.5])
mpl.colorbar.ColorbarBase(cax, cmap=cmap, norm=norm, orientation='vertical')

這是transparency_ticks = 500的圖像。 所以你可以看到每個補丁之間的界限。

線條可見

這是transparency_ticks = 5000的圖像。 由於它們與其余部分混合,因此您不再看到線條,但這些線條使得顏色條看起來更暗。

線條使色條比應該更暗

而不是RGBA上的級別,使用具有各種飽和度的HSV

fig, ax = plt.subplots(figsize=(10, 10))
max_val = 4
transparency_ticks = 50
colors = [mpl.colors.hsv_to_rgb((0.83, a/transparency_ticks, 1)) 
          for a in range(transparency_ticks)]
cmap = mpl.colors.ListedColormap(colors)
norm = mpl.colors.Normalize(vmin=0, vmax=max_val)
cax = fig.add_axes([0.8, 0.17, 0.05, 0.5])
mpl.colorbar.ColorbarBase(cax, cmap=cmap, norm=norm, orientation='vertical')

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM