python渐变色代码_python生成渐变色

使用RGB颜色,两种颜色间设置一定的步长,就能生成想要的渐变色

import seaborn as sns

import matplotlib.pyplot as plt

# RGB格式颜色转换为16进制颜色格式

def RGB_to_Hex(rgb):

RGB = rgb.split(',') # 将RGB格式划分开来

color = '#'

for i in RGB:

num = int(i)

# 将R、G、B分别转化为16进制拼接转换并大写 hex() 函数用于将10进制整数转换成16进制,以字符串形式表示

color += str(hex(num))[-2:].replace('x', '0').upper()

print(color)

return color

# RGB格式颜色转换为16进制颜色格式

def RGB_list_to_Hex(RGB):

# RGB = rgb.split(',') # 将RGB格式划分开来

color = '#'

for i in RGB:

num = int(i)

# 将R、G、B分别转化为16进制拼接转换并大写 hex() 函数用于将10进制整数转换成16进制,以字符串形式表示

color += str(hex(num))[-2:].replace('x', '0').upper()

print(color)

return color

# 16进制颜色格式颜色转换为RGB格式

def Hex_to_RGB(hex):

r = int(hex[1:3], 16)

g = int(hex[3:5], 16)

b = int(hex[5:7], 16)

rgb = str(r) + ',' + str(g) + ',' + str(b)

print(rgb)

return rgb, [r, g, b]

# 生成渐变色

def gradient_color(color_list, color_sum=700):

color_center_count = len(color_list)

# if color_center_count == 2:

# color_center_count = 1

color_sub_count = int(color_sum / (color_center_count - 1))

color_index_start = 0

color_map = []

for color_index_end in range(1, color_center_count):

color_rgb_start = Hex_to_RGB(color_list[color_index_start])[1]

color_rgb_end = Hex_to_RGB(color_list[color_index_end])[1]

r_step = (color_rgb_end[0] - color_rgb_start[0]) / color_sub_count

g_step = (color_rgb_end[1] - color_rgb_start[1]) / color_sub_count

b_step = (color_rgb_end[2] - color_rgb_start[2]) / color_sub_count

# 生成中间渐变色

now_color = color_rgb_start

color_map.append(RGB_list_to_Hex(now_color))

for color_index in range(1, color_sub_count):

now_color = [now_color[0] + r_step, now_color[1] + g_step, now_color[2] + b_step]

color_map.append(RGB_list_to_Hex(now_color))

color_index_start = color_index_end

return color_map

if __name__ == '__main__':

# input_colors = ["#40FAFF", "#00EBEB", "#00EB00", "#FFC800", "#FC9600", "#FA0000", "#C800FA", "#FF64FF"]

input_colors = ["#00e400", "#ffff00", "#ff7e00", "#ff0000", "#99004c", "#7e0023"]

colors = gradient_color(input_colors)

sns.palplot(colors)

print(len(colors))

plt.show()

文章来源: www.oschina.net,作者:可达鸭Go,版权归原作者所有,如需转载,请联系作者。

原文链接:https://my.oschina.net/xiaohuai4869/blog/3104848

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值