乐趣区

关于人工智能:Seaborn的6个简单技巧

作者 |Zolzaya Luvsandorj
编译 |VK
起源 |Towards Datas Science

在这篇文章中,咱们将探讨一些简略的办法来定制你的图表,使它们在美学上更好。我心愿这些简略的技巧能帮忙你失去更好看的图。

基线图

本文中的脚本在 Jupyter 笔记本中的 python3.8.3 中进行了测试。

让咱们应用 Seaborn 内置的 penguins 数据集作为样本数据:

# 导入包
import matplotlib.pyplot as plt
import seaborn as sns

# 导入数据
df = sns.load_dataset('penguins').rename(columns={'sex': 'gender'})
df

咱们将应用默认图表设置构建规范散点图,以将其用作基线:

# 图
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender')

咱们将看到这个图如何随着每一个技巧而扭转。


技巧

你将看到,前两个技巧用于单个绘图,而其余四个技巧用于更改所有图表的默认设置。

技巧 1:分号

你有没有留神到在上一个图中,文本输入就在图表的正上方?克制此文本输入的一个简略办法是在绘图开端应用;

# 图
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender');

只需在代码开端增加;就能够失去更清晰的输入。

技巧 2:plt.figure()

绘图通常能够从调整大小中获益。如果咱们想调整大小,咱们能够这样做:

# 图
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender');

当咱们调整大小时,图例移到了左上角。让咱们将图例移到图表之外,这样它就不会意外地笼罩数据点:

# 图
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.2, 1));

如果你想晓得如何晓得 figsize()bbox_to_anchor()应用什么数的字组合,则须要尝试哪些数字最适宜绘图。

技巧 3:sns.set_style()

如果不喜爱默认款式,此函数有助于更改绘图的整体款式。这包含轴的色彩和背景。让咱们将款式更改为 whitegrid,并查看打印外观如何更改:

# 更改默认款式
sns.set_style('whitegrid')

# 图
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.2, 1));

这里还有一些其余的抉择能够尝试:“darkgrid”、“dark”和“ticks”来找到你更喜爱的那个。

技巧 4:sns.set_context()

在后面的图中,标签尺寸看起来很小。如果不喜爱默认设置,咱们应用 sns.set_context()能够更改上下文参数。

我应用这个函数次要是为了管制绘图中标签的默认字体大小。通过更改默认值,咱们能够节省时间,而不用为单个绘图的不同元素(例如轴标签、题目、图例)调整字体大小。让咱们把上下文改成“talk”,再看看图:

# 默认上下文更改
sns.set_context('talk')

# 图
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1));

它更容易识别,不是吗?另一个能够尝试的选项是:“poster”,这将减少默认大小甚至更多。

技巧 5:sns.set_palette()

如果你想将默认调色板自定义为你喜爱的色彩组合,此性能十分不便。咱们能够应用 Matplotlib 中的黑白映射。这里是从色彩库中抉择的。让咱们将调色板更改为“rainbow”并再次查看该图:

# 更改默认调色板
sns.set_palette('rainbow')

# 图
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1));

如果找不到你喜爱的 Matplotlib 色彩映射,能够手动抉择色彩来创立本人独特的调色板。???? 创立本人调色板的一种办法是将色彩名称列表传递给函数,如下例所示。这个链接是色彩名称列表:https://matplotlib.org/3.1.0/…。

# 更改默认调色板
sns.set_palette(['green', 'purple', 'red'])

# 图
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1));

如果色彩名称不能很好地捕捉到你所谋求的,你能够应用十六进制色彩构建本人的调色板来拜访更宽泛的选项(超过 1600 万种色彩!)。这里是我最喜爱的资源,能够找到一个十六进制的自定义调色板。咱们来看一个例子:

# 更改默认调色板
sns.set_palette(['#62C370', '#FFD166', '#EF476F'])

# 图
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', 
                alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1));

技巧 6:sns.set()

从后面的三个技巧中,我心愿你能找到你最喜爱的组合(在某些状况下,它可能会保留默认设置)。如果咱们要更新图表的默认设置,最好是在导入可视化软件包之后再更新。这意味着咱们在脚本的结尾会有这样一个片段:

# 导入包
import matplotlib.pyplot as plt
import seaborn as sns

# 更改默认值
sns.set_style('whitegrid')
sns.set_context('talk')
sns.set_palette('rainbow')

更新下面的多个默认值能够用 sns.set(). 以下是同一代码的简洁版本:

# 导入包
import matplotlib.pyplot as plt
import seaborn as sns

# 更改默认值
sns.set(style='whitegrid', context='talk', palette='rainbow')

这是六个技巧。以下是调整前后的图比照:


我心愿你学会了一些简略的办法来调整你的图表,这不必花太多工夫。我心愿这篇文章能给你一些初步的想法,让你开始个性化你的图表,并使它们更具视觉上的美。如果你感兴趣,以下是我的一些帖子的链接:

  • https://towardsdatascience.co…
  • https://towardsdatascience.co…
  • https://towardsdatascience.co…
  • https://towardsdatascience.co…
  • https://towardsdatascience.co…

原文链接:https://towardsdatascience.co…

欢送关注磐创 AI 博客站:
http://panchuang.net/

sklearn 机器学习中文官网文档:
http://sklearn123.com/

欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/

退出移动版