Pyecharts热力图——图表颜色控制

Pyecharts热力图——图表颜色控制

原有绘制出来的图表,温差数值颜色属于随机,没有控制,无法一目了然,原先博客链接。


新绘制后成果图

Pyecharts热力图——图表颜色控制_第1张图片


优化思路:

对于每一个温差数值,进行一个颜色赋值:

以0为基准,向两端发散,大于0的温差为暖色调,小于0的温差为冷色调。将温差范围对应一个颜色范围,产生一个渐变的颜色。


代码:

编写函数,传入温差范围:

def get_rbg(numberMin,numberMax):
    l = [int(i) for i in range(numberMin,numberMax+1)]
    if 0 in l:
        #(0,0,255)-->(+,+,255)-->(255,255,255)-->(255,255-,255-)-->(255,0,0)
        min_interval = np.floor_divide(255,abs(numberMin)+1)
        left_list = [f'rgb({np.multiply(i+1,min_interval)},{np.multiply(i+1,min_interval)},255)' for i in range(abs(numberMin))]
        max_interval = np.floor_divide(255,abs(numberMax)+1)
        right_list = [f'rgb(255,{np.subtract(255,np.multiply(i+1,max_interval))},{np.subtract(255,np.multiply(i+1,max_interval))})' for i in range(abs(numberMax))]
        finall_list = left_list + ['rgb(255,255,255)']+right_list
    elif 0<int(numberMin):
        #(255,255,255)-->(255,255-,255-)-->(255,0,0)
        n = np.subtract(abs(numberMax)+2,abs(numberMin))
        interval = np.floor_divide(255,n)
        finall_list = [f'rgb(255,{np.subtract(255,np.multiply(i+1,interval))},{np.subtract(255,np.multiply(i+1,interval))})' for i in range(abs(n)-1)]
    else:
        #(0,0,255)-->(+,+,255)-->(255,255,255)
        #n = np.floor_divide(255,np.subtract(abs(numberMin)+1,abs(numberMax)))
        n = np.subtract(abs(numberMin)+2,abs(numberMax))
        interval = np.floor_divide(255,n)
        finall_list = [f'rgb({np.multiply(i+1,interval)},{np.multiply(i+1,interval)},255)' for i in range(abs(n)-1)]
    return finall_list

对原博客中的pyecharts代码传入新生成的颜色列表即可,实现每次生成的天气温差随范围颜色渐变。

你可能感兴趣的:(python,numpy,数据分析)