絕了!相見恨晚的Python可視化配色工具
點擊下方“AI算法與圖像處理”,一起進步!
重磅干貨,第一時間送達
來源:pythonic生物人
有小伙伴說python可視化自帶顏色很丑,那您一定是沒遇到palettable,palettable是一個純python寫的顏色條(Colormap)庫,匯集了大量知名可視化軟件的顏色條(比如Tableau色系,matplotlib部分色系等等),共有顏色條(Colormap)1587類,可使用的單顏色數(shù)萬種,本文詳細介紹palettable如何使用。 
1、palettable快速安裝
pip?install?palettable?-i?https://pypi.tuna.tsinghua.edu.cn/simple
2、palettable顏色條(Colormap)快速使用
導入palettable包
import?palettable
from?palettable.cartocolors.qualitative?import?Bold_9
#為了描述方便,此處直接倒入palettable.cartocolors.qualitative大類下的Bold_9小類,
#實際使用時可直接用palettable.cartocolors.qualitative.Bold_9
palettable重要屬性-可視化色度條
Bold_9.show_discrete_image()#Bold_9各種顏色條圖片

palettable重要屬性-輸出色度條中單顏色的數(shù)目
print(Bold_9.number)#Bold_9這種colormap中單顏色的數(shù)目
9即上面的圖片有9格
palettable重要屬性-輸出色度條中單顏色的色號值
print(Bold_9.colors)#Bold_9?colormap中每種顏色的RGB格式色號
print(Bold_9.hex_colors)#Bold_9?colormap中每種顏色的hex格式色號
print(Bold_9.mpl_colors)#RGB?tuples?in?the?range?0-1?as?used?by?matplotlib
[[127, 60, 141], [17, 165, 121], [57, 105, 172], [242, 183, 1], [231, 63, 116], [128, 186, 90], [230, 131, 16], [0, 134, 149], [207, 28, 144]]
['#7F3C8D', '#11A579', '#3969AC', '#F2B701', '#E73F74', '#80BA5A', '#E68310', '#008695', '#CF1C90']
[(0.4980392156862745, 0.23529411764705882, 0.5529411764705883), (0.06666666666666667, 0.6470588235294118, 0.4745098039215686), (0.2235294117647059, 0.4117647058823529, 0.6745098039215687), (0.9490196078431372, 0.7176470588235294, 0.00392156862745098), (0.9058823529411765, 0.24705882352941178, 0.4549019607843137), (0.5019607843137255, 0.7294117647058823, 0.35294117647058826), (0.9019607843137255, 0.5137254901960784, 0.06274509803921569), (0.0, 0.5254901960784314, 0.5843137254901961), (0.8117647058823529, 0.10980392156862745, 0.5647058823529412)]
Matplotlib中使用palettable
import?matplotlib.pyplot?as?plt
import?matplotlib?as?mpl
import?palettable
mpl.rc_file_defaults()
my_dpi?=?96
plt.figure(figsize=(580?/?my_dpi,?580?/?my_dpi),?dpi=my_dpi)
plt.subplot(221)
patches,?texts,?autotexts?=?plt.pie(
????x=[1,?2,?3],
????labels=['A',?'B',?'C'],
????#使用palettable.tableau.BlueRed_6
????colors=palettable.tableau.BlueRed_6.mpl_colors[0:3],
????autopct='%.2f%%',
????explode=(0.1,?0,?0))
patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('tableau.BlueRed_6',?size=12)
mpl.rc_file_defaults()
plt.subplot(222)
patches,?texts,?autotexts?=?plt.pie(
????x=[1,?2,?3],
????labels=['A',?'B',?'C'],
????#使用palettable.cartocolors.qualitative.Bold_9
????colors=palettable.cartocolors.qualitative.Bold_9.mpl_colors[0:3],
????autopct='%.2f%%',
????explode=(0.1,?0,?0))
patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('cartocolors.qualitative.Bold_9',?size=12)
mpl.rc_file_defaults()
plt.subplot(223)
patches,?texts,?autotexts?=?plt.pie(
????x=[1,?2,?3],
????labels=['A',?'B',?'C'],
????#使用palettable.cartocolors.qualitative.Bold_9
????colors=palettable.cartocolors.qualitative.Bold_9.mpl_colors[0:3],
????autopct='%.2f%%',
????explode=(0.1,?0,?0))
patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('cartocolors.qualitative.Bold_9',?size=12)
plt.subplot(223)
patches,?texts,?autotexts?=?plt.pie(
????x=[1,?2,?3],
????labels=['A',?'B',?'C'],
????#使用palettable.lightbartlein.sequential.Blues10_5
????colors=palettable.lightbartlein.sequential.Blues10_5.mpl_colors[0:3],
????autopct='%.2f%%',
????explode=(0.1,?0,?0))
#matplotlib.patches.Wedge
patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('lightbartlein.sequential.Blues10_5',?size=12)
plt.subplot(224)
patches,?texts,?autotexts?=?plt.pie(
????x=[1,?2,?3],
????labels=['A',?'B',?'C'],
????colors=palettable.wesanderson.Moonrise5_6.mpl_colors[0:3],
????autopct='%.2f%%',
????explode=(0.1,?0,?0))
patches[0].set_alpha(0.3)
patches[2].set_hatch('|')
patches[1].set_hatch('x')
plt.title('wesanderson.Moonrise5_6',?size=12)
plt.show()

Seaborn中使用palettable
例子來自幾行代碼繪制靚麗矩陣圖
使用palettable.tableau.TrafficLight_9
import?seaborn?as?sns
iris_sns?=?sns.load_dataset("iris")
import?palettable
g?=?sns.pairplot(
????iris_sns,
????hue='species',
????palette=palettable.tableau.TrafficLight_9.mpl_colors,??#Matplotlib顏色
)
sns.set(style='whitegrid')
g.fig.set_size_inches(10,?8)
sns.set(style='whitegrid',?font_scale=1.5)

使用palettable.tableau.BlueRed_6
使用palettable.cartocolors.qualitative.Bold_9
使用palettable.wesanderson.Moonrise5_6
使用palettable.cartocolors.diverging.ArmyRose_7_r
3、palettable包含那些顏色條(Colormap)
palettable下面有16大類Colormap,共計1587小類Colormap,合計上萬種單顏色可供使用,已經(jīng)整理為pdf格式,感興趣的可以
包含以下16大類
palettable.cartocolors.diverging
palettable.cartocolors.qualitative
palettable.cartocolors.sequential
palettable.cmocean.diverging
palettable.cmocean.sequential
palettable.colorbrewer.diverging
palettable.colorbrewer.qualitative
palettable.colorbrewer.sequential
palettable.lightbartlein.diverging
palettable.lightbartlein.sequential
palettable.scientific.diverging
palettable.scientific.sequential
palettable.matplotlib
palettable.mycarta
palettable.tableau
palettable.wesanderson
共計1587小類【每個小類還有逆類,名稱后面加“_r”即可】上面16大類下面有數(shù)個小類,例如,著名BI軟件Tableau的配色條palettable.tableau這一大類,下面有palettable.tableau.BlueRed_12,palettable.tableau.GreenOrange_12等等數(shù)個小類:
palettable.tableau.BlueRed_12
palettable.tableau.BlueRed_6
palettable.tableau.ColorBlind_10
palettable.tableau.Gray_5
palettable.tableau.GreenOrange_12
palettable.tableau.GreenOrange_6
palettable.tableau.PurpleGray_12
palettable.tableau.PurpleGray_6
palettable.tableau.TableauLight_10
palettable.tableau.TableauMedium_10
palettable.tableau.Tableau_10
palettable.tableau.Tableau_20
palettable.tableau.TrafficLight_9
也就是類似上面的這種有1587行。
-------- End --------
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有美顏、三維視覺、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群
個人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學校/企業(yè)+研究方向+昵稱
下載1:何愷明頂會分享
在「AI算法與圖像處理」公眾號后臺回復:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析
下載2:終身受益的編程指南:Google編程風格指南
在「AI算法與圖像處理」公眾號后臺回復:c++,即可下載。歷經(jīng)十年考驗,最權(quán)威的編程規(guī)范!
下載3 CVPR2021 在「AI算法與圖像處理」公眾號后臺回復:CVPR,即可下載1467篇CVPR?2020論文 和 CVPR 2021 最新論文

