Python 色彩 详解与实例

目录

要点: Python中的色彩。

Python中的色彩

把python和seaborn中支持的颜色都画出来。其中,matplotlib 包中的颜色定义在 matplotlib/lib/matplotlib/_color_data.py 中。

(1) 左边颜色名,右边16进制颜色

import matplotlib i=0 for name, hex in matplotlib.colors.cnames.items(): i+=1 print(i, name, hex) 输出: 1 aliceblue #F0F8FF 2 antiquewhite #FAEBD7 3 aqua #00FFFF ... 146 whitesmoke #F5F5F5 147 yellow #FFFF00 148 yellowgreen #9ACD32

(2) 左边颜色块,右边颜色名字和16进制

结果: matplotlib中的色彩seaborn中的色彩

# code def sortColors(colorDict): from matplotlib import colors as mcolors colors=colorDict #seaborn.xkcd_rgb #dict # 对颜色排序 # Sort colors by hue, saturation, value and name. by_hsv = sorted((tuple(mcolors.rgb_to_hsv(mcolors.to_rgba(color)[:3])), name) #[::-1] for name, color in colors.items()) sorted_names = [name for hsv, name in by_hsv] return sorted_names; def colorDict2HTML(colorDict, fName, header): sorted_names=sortColors(colorDict) colors=colorDict # N=len(colors) cols=6 rows=N // cols +1 print(N, "(",rows, 'rows,', cols, 'columns)') # fw=open(fName, 'w') html=""" <style> ul{list-style-type:none;} ul li{margin: 0; padding: 0;} ul span{width:200px; display:inline-block; font-size:10px;} ul span b{width:45px;height:15px; display:inline-block; margin-right: 5px;} ul span i{font-size: xx-small; color: #eee;} </style> <h1>%s</h1>\n<ul> """ fw.write(html % header) i=0 Dict={} for cName in sorted_names: cHex=colors[cName] i+=1 if i>10: #break; pass; nRow=i % rows; nCol=i // rows; if nRow not in Dict: Dict[nRow]="<li>" Dict[nRow]+="<span><b style='background:%s'></b>%s<i>(%s)</i></span>" % (cHex, cName,cHex); # for i in Dict: li=Dict[i]; fw.write(li +"</li>\n") fw.write("</ul>") fw.close(); print('==end==:', fName) # import seaborn colorDict2HTML(seaborn.xkcd_rgb, 'web/docs/pic/seabornColors.html', 'seaborn colors') # 949 ( 159 rows, 6 columns) import matplotlib colorDict2HTML(matplotlib.colors.cnames, 'web/docs/pic/matplotlibColors.html', 'matplotlib colors') # 148 ( 25 rows, 6 columns)

获取调色板并显示

import seaborn as sns # 显示sns的一个调色板板 sns.palplot(sns.color_palette("muted")) sns.color_palette("xx") #主动报错,会显示全部调色板名字 # 显示plt的色板 import matplotlib.pyplot as plt plt.cm.Pastel1 plt.cm.spring help(plt.cm) #查看全部调色板名字 # 获取plt调色板的rgb值 colors = iter([plt.cm.Pastel1(i) for i in range(9)]) for i in colors: print(i) #(1.0, 1.0, 0.8, 1.0) 前面都是0-1之间的,最后一个alpha默认是1 # 获取plt调色板的rgb值,并可视化颜色 colors2 = [plt.cm.Pastel1(i) for i in range(9)] sns.palplot(colors2)

最后一个图 sns.palplot 的输出:



# 配对颜色
import matplotlib.pyplot as plt
plt.cm.Paired
Paired colormap