- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
'''
需求缘起:
本人目前常用matplotlib画图,为了使画的图与前端网页的数据配色一致,现在我要
将matplotlib的色条转为2种通用的表示形式:
十六进制#ff03f8,和 rgb(74, 242, 207)
'''
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import json
def getHexColorbar():
# 辅助函数:
def f(rr):
rr=np.round(rr*255)
rr=rr.astype(np.int16)
rr=hex(rr)
rr=str(rr)
rr=rr[2:]
if len(rr)==1:
rr='0'+rr
return rr
# 辅助函数:
def g(rr):
rr=np.round(rr*255)
rr=rr.astype(np.int16)
return rr
x=np.arange(256)
colors=mpl.cm.rainbow(x)
hexcolor=[]
rgb=[]
for i in colors:
hexcolor.append('#'+f(i[0])+f(i[1])+f(i[2]))
rgb.append( (g(i[0]),g(i[1]),g(i[2])) )
# 提供2种颜色表示方式:
# 十六进制#ff03f8,和(74, 242, 207)
result={"hex":hexcolor,"rgb":rgb}
return result
if __name__=="__main__":
x=getHexColorbar()
print(x)
|
|