在Python中用Seaborn美化图表的3个示例

简介: 在Python中用Seaborn美化图表的3个示例

本篇文章可以看作是上篇文章的延续,对于想美化自己图表的小伙伴可以看看


进行研究时,选择图像模式一般很容易,说实话:向团队或客户传达图像模式有时要困难得多。不仅很难用外行术语解释某些图像模式(尝试向非数学家解释一个数学符号),而且有时,您还需要试图表示对各种模式需要依赖的条件……怎么说呢?

图表对于我们研究人员至关重要,因此我们需要它们能够很好地传达我们的意思。如果没有这些,我们的知识和发现所承担的责任要轻得多,但图表仍然具有最佳的视觉效果,所以我们需要确保图表可以尽可能地传达我们的发现。

在下面,我将讨论Seaborn以及为什么我相对于其他第三方库更喜欢它。我还将给出我经常使用的3张图表。

image.png

为什么选择Seaborn

令人惊讶的是,流行的Python图表库很少而且功能相差甚远,因为很难进行一刀切的设置:认为Matplotlib旨在反映Matlab输出和ggplot,与R语言中的绘图方式相似。

关于为什么我更喜欢Seaborn而不是其他第三方库的原因:

  1. Seaborn与Matplotlib比需要少得多的代码就可以生成类似的高质量输出
  2. Chartifys的视觉效果不是很好(Spotify-有点太笨拙了)。
  3. ggplot似乎不是Python固有的,所以感觉我一直在努力使它对我有用。
  4. Plotly有一个“社区版本”,这让我对这部分未来是否许可有一定担忧,因此我通常会远离这些内容。从设计角度和功能上来说,它实际上是相当不错的,并且提供了广泛的产品组合,但是,它并没有比Seaborn好多少。

最重要的是,研究人员通常需要花费大量时间来绘制分布图,如果不能轻松地绘制分布图,则您的绘制程序包实际上是多余的。Seaborn绘制直方图很方便,而KDE与其他软件包确实很难做到(Plotly例外)。

最后,Seaborn涵盖了所有设计方面的内容,这使您(研究人员)有更多的时间进行研究。Matplotlib的视觉效果很不好,Chartify太难以使用,我都不太喜欢。

单变量分布图

如果您发现了一个随机变量,其分布有一定规律,那么Seaborn的调度功能将非常有用。通过显示以下内容有助于传达图片特征:

  1. 直方图形式的基础分布
  2. 顶部附近有一个近似功能,可以提供平滑的图像

网格线和清晰的字体颜色(漂亮的半透明的蓝色)可提供简单有效的服务!

image.png

图1:随机单变量分布

联合分布

在这里,我们尝试传达更多更复杂的动态信息。我们有两个我们认为应该关联的变量,但是如何可视化这种关系呢?

图表两个侧面分布非常适合从视觉上观察边缘分布,而面积图非常适合识别密度较大的区域。

image.png

图2:两个随机变量的联合分布

我在研究和文章中都使用了这种图,因为它使我能够将单变量动力学(带有内核图)和联合动力学保持在我的思想和观察的最前沿:所有这些都在传达我所经历的思考。在分层讨论方面非常有用,我强烈建议您使用。

箱形图和晶须图

分布图的问题在于,它们常常会被异常值扭曲,除非您知道这些异常值存在并且进行处理。

箱形图得到了广泛的使用,它是一种显示可靠的指标的有效方法,例如中位数和四分位数范围,它们对于异常值(由于其较高的分解点)具有更大的弹性,

Seaborn的箱形图实施方式看起来很棒,因为它可以突出显示多个维度来传达一个相当复杂的指标,同时,其视觉效果也足以适合学术期刊。此外,Seaborn还出色地完成了提高代码效率的工作,从而使研究人员不必花时间来使代码可读。

image.png

 

图4:箱形图和晶须图

同时识别和讨论多种功能和模式对于您的研究成功至关重要,因此,我强烈建议您使用此图表。同时,您需要确保将图表定位到您的受众群体!

在上面的文章中,我广泛讨论了为什么对我来说Seaborn是最好的绘图程序包,并给出了我使用的3个图表示例。我坚信以一种容易理解的方式传达信息:文字越少越好!坚持才是关键!

这些图表使您轻松地做到这一点,因此,如果您是视觉研究员,或者如果您喜欢看全局,那么Seaborn就适合您。

再次感谢,如果您有任何疑问,请告诉我!

代码

以下代码段是用于创建上面很棒的图表的简单代码段!

图0:子图

import seaborn as sns
df = sns.load_dataset(“iris”)
sns.pairplot(df, hue=”species”)

图1:单变量分布

x = np.random.normal(size=100)
sns.distplot(x);

图2:联合分布

mean, cov = [0, 1], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, 200)
df = pd.DataFrame(data, columns=["x", "y"])
sns.jointplot(x="x", y="y", data=df, kind="kde");

图3:多变量联合分布

iris = sns.load_dataset('iris')
g = sns.PairGrid(iris)
g.map_diag(sns.kdeplot)
g.map_offdiag(sns.kdeplot, n_levels=6);

图4:箱形图和晶须图

import seaborn as sns
import matplotlib.pyplot as pltsns.set(style="ticks")# Initialize the figure with a logarithmic x axis
f, ax = plt.subplots(figsize=(7, 6))
ax.set_xscale("log")# Load the example planets dataset
planets = sns.load_dataset("planets")# Plot the orbital period with horizontal boxes
sns.boxplot(x="distance", y="method", data=planets,whis="range", palette="vlag")# Add in points to show each observation
sns.swarmplot(x="distance", y="method", data=planets,size=2, color=".3", linewidth=0)# Tweak the visual presentation
ax.xaxis.grid(True)
ax.set(ylabel="")
sns.despine(trim=True, left=True)
目录
相关文章
|
30天前
|
数据挖掘 Python
Python示例,展示如何找到最近一次死叉之后尚未形成金叉的位置
【10月更文挑战第7天】金融分析中,“死叉”指短期移动平均线(如MA5)跌破长期移动平均线(如MA10),而“金叉”则相反。本文提供Python代码示例,用于找出最近一次死叉后未形成金叉的位置,涵盖移动平均线计算、交叉点判断及结果输出等步骤,适合金融数据分析。
34 4
|
2月前
|
存储 Python
Python示例:分解一个不多于指定位的正整数
Python示例:分解一个不多于指定位的正整数
|
8天前
|
数据可视化 JavaScript 前端开发
Python中交互式Matplotlib图表
【10月更文挑战第20天】Matplotlib 是 Python 中最常用的绘图库之一,但默认生成的图表是静态的。通过结合 mpld3 库,可以轻松创建交互式图表,提升数据可视化效果。本文介绍了如何使用 mpld3 在 Python 中创建交互式散点图、折线图和直方图,并提供了详细的代码示例和安装方法。通过添加插件,可以实现缩放、平移和鼠标悬停显示数据标签等交互功能。希望本文能帮助读者掌握这一强大工具。
27 5
|
10天前
|
数据挖掘 Python
Python示例,展示如何找到最近一次死叉之后尚未形成金叉的位置
金融分析中,“死叉”指短期移动平均线(如MA5)跌破长期移动平均线(如MA10),而“金叉”则相反。本文提供Python代码示例,用于找出最近一次死叉后未形成金叉的位置,涵盖移动平均线计算、交叉点判断及结果输出等步骤,适合金融数据分析。
17 1
|
20天前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
33 3
|
1月前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
76 3
|
26天前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
41 0
|
1月前
|
PyTorch 测试技术 算法框架/工具
Python中Thop库的常见用法和代码示例
肆十二在B站分享了关于THOP(Torch-OpCounter)的实战教学视频。THOP是一个用于计算PyTorch模型操作数和计算量的工具,帮助开发者评估模型复杂度和性能。本文介绍了THOP的安装、使用方法及基本用例,包括如何计算模型的FLOPs和参数量。
67 0
|
1月前
|
Python
Python中tqdm模块的常用方法和示例
`tqdm` 是一个快速、可扩展的Python进度条库,适用于长循环中添加进度提示。通过封装迭代器 `tqdm(iterator)`,可以轻松实现进度显示。支持自定义描述、宽度及嵌套进度条,适用于多种迭代对象。在Jupyter notebook中,可自动调整显示效果。
32 0
|
1月前
|
Python
Python中threading模块的常用方法和示例
Python 的 `threading` 模块提供了多线程编程的能力,允许同时执行多个线程。主要类包括 `Thread`、`Lock` 和 `Condition`。`Thread` 类用于创建和管理线程,`Lock` 用于同步线程,防止资源竞争,`Condition` 用于线程间协调。本文介绍了这些类的常用方法及示例代码,帮助你更好地理解和使用多线程编程。
25 0
下一篇
无影云桌面