还在为配图的颜色而烦恼嘛,还在为matplotlib的经典颜色而困惑嘛,看完下面的文章,教你如何选择图片颜色
上图左边是matplotlib默认的颜色系统,而右边就是使用matplotlib自带的颜色系统实现的。如何实现,请继续往下浏览
由于官方的色组比较多,我选了几款效果比较好的几个色组,见下图。
图1 我的推荐色组
图1左边的是色组的名字,在使用时会用到。官方所有色组后在文章末尾出现。
import matplotlib.pyplot as plt
color_name = 'Set3' #官方色组名称
# 法一:在jupyter`在这里插入代码片` notebook中可以这样查看
plt.get_cmap(color_name)
# 法二:使用fig查看
fig,ax = plt.subplots(figsize=(10,0.5))
fig.colorbar(mpl.cm.ScalarMappable(cmap=color_name),cax=ax, orientation='horizontal')
plt.show()
图2 查看色组结果
下面为我使用官方色组画扇形图的demo
import matplotlib.pyplot as plt
import numpy as np
labels = ['Frogs','Hogs','Dogs','Logs']
sizes = [15, 30, 45, 10]
color_name = 'rainbow'
# 手动选择
select1 = (0,45,103,253) #连续性色组图可以从0-256之间选择,e.g‘rainbow’
select2 = (0.1,0.5,0.3,0.8) # 连续性色组图也可以从0-1之间选择
select3 = (1,4,8,3) # 非连续型色组在0-(色组长度-1)之间选择,e.g‘Set3’在0-11之间选择
# 自动选择
select4 = np.random.uniform(0,1,len(sizes)) # 使用uniform可以随机选择颜色
select5 = np.random.uniform(0,1,len(sizes))
select5.sort()
select6 = np.linspace(0,1,len(sizes))
colors = plt.get_cmap(color_name)(select2) # 从色组里选择颜色,我选择的是select2
fig,ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True, colors=colors)
ax.axis('equal')
plt.show()
图3 画图结果
除了使用官方给定的色组,还可以自己定义色组
from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt
colors = ['#3682be','#45a776','#f05326','#eed777','#334f65','#b3974e','#38cb7d','#ddae33','#844bb3','#93c555','#5f6694','#df3881']
cmap = ListedColormap(colors, name = 'mycmap')
fig,ax = plt.subplots(figsize=(10,0.5))
fig.colorbar(mpl.cm.ScalarMappable(cmap=cmap),cax=ax, orientation='horizontal')
plt.show()
图4 画图结果
这里会使用到一个叫做ListedColormap的函数
总的来说使用不同的颜色,在图形样式不变的情况下,给人一焕然一新的感觉。而不是使用matplotlib的经典配色,他人一看就看出是用matplotlib所画。
matplotlib颜色官方
论文配色方案(自用)
整理了几套好看的配色方案
JUST ENTER A COLOR!
BrandColors
FLAT UI COLORS2