Pau*_*ger 3 python hex colors matplotlib seaborn
我试图在我的论文中保留一个单一的调色板,我注意到我的 histplots 的蓝色和我的计数图的蓝色色调略有不同,即使我将它们设置为完全相同的十六进制值。
是否有我遗漏的设置,或者这些不同的图是否只显示给定的十六进制?我试过使用计数图饱和度,但它与颜色不匹配。理想情况下,我所有的直方图都与我的计数图(以及使用计数图着色的条形图)具有相同的颜色。
下面是一个最小代码示例:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(rc={'figure.figsize':(20,10)}, font_scale=2)
plt.rcParams['axes.grid'] = False
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(1,2)
sns.countplot(x="class", data=titanic, ax=ax[0], color='#5975a4')
sns.histplot(x="who", data=titanic, ax=ax[1], color='#5975a4')
Run Code Online (Sandbox Code Playgroud)
它产生下图:
所述countplot具有饱和度参数(更饱和更“实际”的色彩,饱和度少更接近灰色)。Seaborn 在条形图中使用饱和度使默认颜色看起来“更平滑”。默认饱和度为0.75; 它可以设置为1获得“真实”颜色。
该histplot有一个alpha参数,使得彩色半透明。颜色与背景混合,因此根据背景颜色看起来不同。在这种情况下,alpha似乎默认为0.75。由于这也具有类似于饱和度的效果,因此histplot不使用饱和度。当在同一个子图中绘制多个直方图时,透明度特别有用。
要获得“真实”颜色,请将 thesaturation的countplot和 的alpha都设置histplot为 1:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(rc={'figure.figsize': (20, 10)}, font_scale=2)
plt.rcParams['axes.grid'] = False
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(1, 2)
sns.countplot(x="class", data=titanic, ax=ax[0], color='#5975a4', saturation=1)
sns.histplot(x="who", data=titanic, ax=ax[1], color='#5975a4', alpha=1)
plt.show()
Run Code Online (Sandbox Code Playgroud)
PS:默认情况下,计数图仅使用 80% 的宽度,而直方图使用全宽。如果需要,直方图条可以缩小,例如sns.histplot(..., shrink=0.8),以获得与 相同的宽度countplot。
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |