Sea*_*thy 5 python matplotlib seaborn
我的公司有一个正式的调色板,所以我需要在我的 seaborn 图表中使用这些颜色。因此,我想设置默认的 seaborn 调色板,并为这些颜色提供易于使用的名称,例如“p”代表紫色,“g”代表绿色。
这是我到目前为止的代码:
# Required libraries
import matplotlib.pyplot as plt
import seaborn as sns
# Wanted palette details
enmax_palette = ["#808282", "#C2CD23", "#918BC3"]
color_codes_wanted = ['grey', 'green', 'purple']
# Set the palette
sns.set_palette(palette=enmax_palette)
# Assign simple color codes to the palette
Run Code Online (Sandbox Code Playgroud)
请帮助我使用我的“color_codes_wanted”列表为颜色指定简单的名称。
正如所评论的,您可以创建一个函数,如果使用自定义颜色名称调用该函数,则会从列表中返回十六进制颜色。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# Wanted palette details
enmax_palette = ["#808282", "#C2CD23", "#918BC3"]
color_codes_wanted = ['grey', 'green', 'purple']
c = lambda x: enmax_palette[color_codes_wanted.index(x)]
x=np.random.randn(100)
g = sns.distplot(x, color=c("green"))
plt.show()
Run Code Online (Sandbox Code Playgroud)
需要注意的是,seaborn 中的所有颜色都是 matplotlib 颜色。matplotlib 提供的一种选择是所谓的 C{n} 表示法(n = 0..9)。通过指定像 "C1" 这样的字符串,你告诉 matplotlib 使用当前颜色循环中的第二种颜色。sns.set_palette
将颜色周期设置为您的自定义颜色。因此,如果您能记住它们在循环中的顺序,您可以使用此信息并指定"C1"
第二种颜色。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# Wanted palette details
enmax_palette = ["#808282", "#C2CD23", "#918BC3"]
sns.set_palette(palette=enmax_palette)
x=np.random.randn(100)
g = sns.distplot(x, color="C1")
plt.show()
Run Code Online (Sandbox Code Playgroud)
所有命名的颜色都存储在一个字典中,您可以通过以下方式访问
matplotlib.colors.get_named_colors_mapping()
Run Code Online (Sandbox Code Playgroud)
您可以使用自定义名称和颜色更新此词典。请注意,这将覆盖具有相同名称的现有颜色。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors as mcolors
import seaborn as sns
# Wanted palette details
enmax_palette = ["#808282", "#C2CD23", "#918BC3"]
color_codes_wanted = ['grey', 'green', 'purple']
cdict = dict(zip(color_codes_wanted, [mcolors.to_rgba(c) for c in enmax_palette]))
mcolors.get_named_colors_mapping().update(cdict)
x=np.random.randn(100)
g = sns.distplot(x, color="green")
plt.show()
Run Code Online (Sandbox Code Playgroud)
此处显示的所有代码都将以“公司的绿色”颜色生成相同的图:
归档时间: |
|
查看次数: |
7899 次 |
最近记录: |