线条图中的颜色取决于python中的函数

时间:2015-10-27 14:11:55

标签: python matplotlib colors gradient colormap

我有一组带标记的线条。我希望这些标记能够淡化色彩图,例如棱镜,取决于能够提供温度的函数。这是我的代码:

openById()

这只是我正在努力的标记面颜色部分。让我们说如果温度很低(从函数返回的值很低),颜色将与色图上“第一”颜色的颜色相同,如果温度非常高(从函数返回的值很高),它将是色彩图上的“最后”颜色。有没有办法做到这一点?

任何帮助都会非常感激,因为我现在已经在这方面苦苦挣扎了一段时间!

提前致谢

1 个答案:

答案 0 :(得分:0)

Check out this answer

这里有一些代码可以证明我的建议:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import cm
import random

maximum = 10

n = 10

def pick_color():
    closest_match = 10*maximum #arbitrary high number
    for item in color_pairs:
        if abs(item[0] - num) < closest_match: 
            closest_match = abs(item[0] - num)
            c = item[1]
    return c 

color = iter(cm.rainbow(np.linspace(0,1,n)))
color_pairs = [(value, c) for value, c in zip(range(n+1), color)]

Xs = [i for i in range(n+1)]
random_list = [random.choice(range(maximum +1)) for i in range(n+1)]


for x, num in zip(Xs,random_list):
    c = pick_color()    
    plt.scatter(x, num, s=50, c=c)

plt.show()

显然,你想要一条线等,但主体是一样的。