鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Python  Linux/ matplotlib設(shè)置線條顏色時(shí)用的rgb數(shù)值,為何和excel里的rgb不一

matplotlib設(shè)置線條顏色時(shí)用的rgb數(shù)值,為何和excel里的rgb不一樣?

lz需要用某些特定的顏色,比如excel中的紅色強(qiáng)調(diào)顏色2,其RGB數(shù)值顯示的是(192,80,77)
圖片描述

lz想在matplotlib里也用這種顏色,代碼如下:

leftvarY.plot(color=(192,80,77), figsize=(12,8))
plt.show()

出現(xiàn)報(bào)錯(cuò):

ValueError: Invalid RGBA argument: 192

查了一下 Matplotlib 2.1.1 documentation ,發(fā)現(xiàn):

Matplotlib recognizes the following formats to specify a color:

 - an RGB or RGBA tuple of float values in [0, 1] (e.g., (0.1, 0.2, 0.5) or (0.1, 0.2, 0.5, 0.3))
 - a hex RGB or RGBA string (e.g., '#0F0F0F' or '#0F0F0F0F')

求教各位,為何官方文檔里的RGB是小于1的數(shù),而lz在excel中找到的rgb數(shù)字都是3位數(shù)...我該如何找到excel中某個(gè)顏色相應(yīng)的,可用于matplotlib的rgb數(shù)值呢?

回答
編輯回答
柚稚

matplotlib的字符串形式和excel用的是同一種顏色設(shè)置方式,只不過字符串是用16進(jìn)制寫的。"#c0504d"就是(192,80,77)。

至于[0,1]的實(shí)數(shù)模式,是對(duì)于上一方式只能用整數(shù)而做的擴(kuò)展。當(dāng)然,對(duì)excel取色器進(jìn)行優(yōu)化(其實(shí)推薦樓主換個(gè)別的取色器,至少用畫圖哇)可以把參數(shù)設(shè)置為(192 / 256, 80 / 256, 77 / 256),這樣會(huì)方便些。

2017年9月2日 17:52