簡體   English   中英

如何可視化顏色映射?

[英]How can I visualize a color mapping?

我有一個功能 在此輸入圖像描述 它采用RGB格式的顏色作為輸入並輸出RGB格式的顏色。 它保證是可區分的,但沒有別的。 為簡單起見,我們可以說它只會改變頻道的順序:

def f(r, g, b):
    return b, g, r

現在我想通過繪制兩個這樣的顏色條來想象這個:

在此輸入圖像描述

但是,我有兩個問題:

  1. 我不知道如何實現這個(所以:什么是與畫布交互的合理方式?matplotlib?)
  2. 我不太確定這個顏色條是否合適。 兩個相互在里面的色輪可能會更好? 兩個顏色的三角形彼此相鄰?

要去關於色彩映射表比RGB方式的另一種方法是使用matplotlib彩色地圖,可在這里

import matplotlib.pyplot as plt
from numpy import linspace

sample_data = [1,5,10,20,45,50] ## y-values

def clr_map(max_index):
    cmap = plt.get_cmap('plasma')
    ## limits of cmap are (0,1) 
    ## ==> use index within (0,1) for each color 
    clrs = [cmap(i) for i in linspace(0, 1, max_index)] 
    return clrs

def clr_plot(data_list):
    clrs = clr_map(len(data_list)) ## call function above
    clr_list = [clr for clr in clrs]
    x_loc = [val+1 for val in range(max(data_list))] ## x-values of barplot
    ## use range for efficiency with multiple overlays
    plt.bar(x_loc[0], data_list[0], label='bar 1', color=clr_list[0])
    plt.bar(x_loc[1], data_list[1], label='bar 2', color=clr_list[1])
    plt.bar(x_loc[2], data_list[2], label='bar 3', color=clr_list[2])
    plt.bar(x_loc[3], data_list[3], label='bar 4', color=clr_list[3])
    plt.bar(x_loc[4], data_list[4], label='bar 5', color=clr_list[4])
    plt.bar(x_loc[5], data_list[5], label='bar 6', color=clr_list[5])
    plt.legend(loc='best')
    plt.show()

clr_plot(sample_data)

暫無
暫無

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

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