2017-08-14 143 views
0

我有以下MWEMatplotlib顏色問題

dat = [1,7,3,6,9,4] 
plt.bar(range(len(dat)), dat, color='#1C5B26') 
plt.savefig(path/tofile.pdf) 

當我運行它,然後檢查PDF,酒吧的十六進制值可以從我指定的內容很遠。我希望情節完全是我指定的顏色,但我甚至可以直觀地看到它不會接近給定的十六進制值。

發生這種情況的任何原因/解決方法?

編輯: 這是我得到什麼時候檢查。對於給定的十六進制值,我應該得到(28,91,38)。我知道它的一個小差異,但是當我使用不同的「顯示在...」選項時,我認爲問題更嚴重。 sRGB是我發現給我的最佳匹配,但仍然不完美。 enter image description here

+0

我無法重現此問題。我使用你的代碼創建了一個圖形,然後從pdf中提取顏色,這與我在腳本中指定的完全相同。也許你的PDF查看器有一個不同的顏色配置文件集?也許你可以展示你的輸出的例子來說明這個問題。 – tom

+0

@tom我正在用一種不同的選項進行檢查,導致我認爲差異更大,但即使使用sRGB,它仍然有一個很小的差異,儘管非常小。 –

回答

1

我想評論這個,但我不能(< 50代表)。

從第一個回答Named colors in matplotlib matplotlib正在使用它的顏色字典。
他還鏈接每一個可用的。使用這本字典的顏色是你不能真正選擇你想要的任何顏色的原因。

+0

爲什麼他們不允許任意的十六進制代碼?你知道任何解決方法嗎?我真的不想搜索最接近的那個。 –

+0

該答案僅顯示哪些指定顏色可用。任何RGB顏色都可以被指定(例如使用十六進制代碼),即使它沒有該字典中的名稱 – tom

+0

例如,請參閱此處:https://matplotlib.org/users/colors.html#specifying-colors – tom