当前位置: 首页 > news >正文

Seaborn数据可视化实战:Seaborn图表定制与数据可视化入门

高级图表定制

学习目标

通过本课程你将掌握如何使用Seaborn库进行高级图表定制,包括图表的标题、图例、注释的添加,以及图表布局和大小的调整。这些技能将帮助你更有效地展示数据,使你的数据故事更加生动和有说服力。

相关知识点

  • Seaborn高级图表定制

学习内容

1 Seaborn高级图表定制

高级图表定制是一种将数据可视化提升到更高艺术与功能层次的创作过程。它不仅仅是简单地将数据转化为图形,而是通过精心设计的色彩搭配、独特的图形样式、巧妙的布局安排以及交互功能的融入,使图表能够精准传达复杂信息的同时,还能吸引观众的注意力并激发他们对数据背后故事的探索欲望。这种定制可以根据不同的应用场景和受众需求,打造出从简洁优雅到复杂华丽、从静态展示到动态交互的多样化图表,让数据不再是枯燥的数字,而是变成了一幅幅富有表现力和感染力的视觉作品,帮助用户更直观、高效地理解和分析数据。

1.1 添加图表标题和注释

在数据可视化中,图表的标题和注释是传达信息的重要组成部分。一个好的标题可以立即吸引观众的注意力,而恰当的注释则可以帮助观众更好地理解图表中的数据点。Seaborn提供了简单的方法来添加这些元素,使你的图表更加专业和信息丰富。

理论知识

在Seaborn中,添加图表标题和注释主要通过matplotlib库的函数来实现,因为Seaborn是基于matplotlib构建的。matplotlib.pyplot模块提供了title()函数来设置图表的主标题,xlabel()ylabel()函数来设置X轴和Y轴的标签,而annotate()函数则用于在图表中添加注释。

  • 设置图表标题:使用plt.title()函数可以设置图表的主标题。你可以通过传递一个字符串作为参数来指定标题的文本。此外,还可以通过fontdict参数来调整标题的字体样式,如字体大小、颜色等。
  • 设置轴标签:使用plt.xlabel()plt.ylabel()函数可以设置X轴和Y轴的标签。这些函数同样接受一个字符串参数来指定标签文本,并且可以通过fontdict参数来调整标签的样式。
  • 添加注释:使用plt.annotate()函数可以在图表的特定位置添加注释。这个函数需要两个主要参数:注释的文本和注释的位置。此外,还可以通过xytext参数来指定注释文本的位置,以及通过arrowprops参数来添加指向注释位置的箭头。

实践代码

下面的代码示例展示了如何使用Seaborn和matplotlib来创建一个带有标题、轴标签和注释的图表。

%pip install seaborn

从obs桶中获取数据

!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/c933252e2fa211f087ecfa163edcddae/tips.zip
!unzip tips.zip
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 替换为你的本地文件路径
tips = pd.read_csv('tips.csv')# 创建图表
sns.scatterplot(x="total_bill", y="tip", data=tips)# 设置图表标题
plt.title("Total Bill vs. Tip", fontdict={'fontsize': 20, 'color': 'blue'})# 设置轴标签
plt.xlabel("Total Bill ($)", fontdict={'fontsize': 14, 'color': 'green'})
plt.ylabel("Tip ($)", fontdict={'fontsize': 14, 'color': 'green'})# 添加注释
plt.annotate('High Tip', xy=(50, 10), xytext=(60, 15),arrowprops=dict(facecolor='black', shrink=0.05))# 显示图表
plt.show()

在这里插入图片描述

1.2 调整图表布局和大小

调整图表的布局和大小是确保图表在不同显示环境中都能良好呈现的关键。Seaborn和matplotlib提供了多种方法来调整图表的大小和布局,包括设置图表的尺寸、调整子图之间的间距等。

理论知识

  • 设置图表大小:使用plt.figure()函数可以设置图表的大小。通过传递figsize参数,可以指定图表的宽度和高度(以英寸为单位)。例如,plt.figure(figsize=(10, 6))将创建一个宽度为10英寸、高度为6英寸的图表。
  • 调整子图间距:使用plt.subplots_adjust()函数可以调整子图之间的间距。这个函数接受多个参数,如leftrightbottomtopwspacehspace,分别用于调整图表的左右边距、上下边距以及子图之间的水平和垂直间距。
  • 保存图表:使用plt.savefig()函数可以将图表保存为文件。通过传递文件路径和文件格式(如'png''pdf'等),可以将图表保存为高质量的图像文件。

实践代码

下面的代码示例展示了如何调整图表的大小和布局,并将图表保存为文件。

import seaborn as sns
import matplotlib.pyplot as plt# 加载示例数据集
tips = pd.read_csv('tips.csv')# 设置图表大小
plt.figure(figsize=(10, 6))# 创建图表
sns.scatterplot(x="total_bill", y="tip", data=tips)# 调整子图间距
plt.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9, wspace=0.2, hspace=0.2)# 保存图表
plt.savefig("scatterplot.png")# 显示图表
plt.show()

在这里插入图片描述

1.3 自定义图例

图例是图表中用于解释不同数据系列或数据点的标记。Seaborn提供了多种方法来自定义图例,包括更改图例的位置、样式和内容,以使其更加符合你的需求。

理论知识

  • 更改图例位置:使用plt.legend()函数可以更改图例的位置。通过传递loc参数,可以指定图例在图表中的位置。例如,loc='upper right'将图例放置在图表的右上角。
  • 自定义图例内容:通过传递labels参数,可以自定义图例中的标签。这个参数接受一个字符串列表,每个字符串对应图例中的一个标签。
  • 调整图例样式:使用legend对象的set_title()方法可以设置图例的标题。通过传递一个字符串参数,可以指定图例标题的文本。此外,还可以通过prop参数来调整图例标题的字体样式。

实践代码

下面的代码示例展示了如何自定义图例的位置、内容和样式。

import seaborn as sns
import matplotlib.pyplot as plt# 加载示例数据集
tips = pd.read_csv('tips.csv')# 创建图表
sns.scatterplot(x="total_bill", y="tip", hue="day", data=tips)# 更改图例位置
plt.legend(loc='upper left')# 自定义图例内容
plt.legend(labels=['Thursday', 'Friday', 'Saturday', 'Sunday'])# 调整图例样式
legend = plt.legend()
legend.set_title('Day of the Week')
plt.setp(legend.get_title(), fontsize='12')# 显示图表
plt.show()

在这里插入图片描述

http://www.dtcms.com/a/343793.html

相关文章:

  • AI+虚拟仿真:以科技之光照亮希望的田野
  • 课小悦系列智能耳机上市,用硬核科技为教育赋能
  • 学习嵌入式第二十三天——数据结构——栈
  • Qt5 文件与数据处理详解
  • NETSDK1045 当前 .NET SDK 不支持将 .NET 8.0 设置为目标。请将 .NET 5.0 或更低版本设置为目标,或使用支持
  • 【FPGA Interlaken协议】
  • 服务器与客户端
  • AI服务器介绍
  • FPGA设计中的信号完整性量化与优化:探索高速数字系统的关键路径
  • 20.9 QLoRA微调实战:1.5B参数Whisper-large-v2在24GB显存实现中文语音识别,CER骤降50%!
  • 企业微信新版搞了个AI功能
  • 构效关系(Structure-Activity Relationship, SAR)分析的标准方法:R基团结构解析
  • Amazon Lambda:无服务器时代的计算革命,解锁多样化应用场景
  • MATLAB入门教程
  • 【PSINS工具箱】MATLAB例程,二维平面上的组合导航,EKF融合速度、位置和IMU数据,4维观测量
  • 如何创建一个Cloudfalare worker项目?
  • 当下一次攻击发生前:微隔离如何守护高敏数据,防范勒索攻击下的数据泄露风险!
  • 【变压器老化仿真】matlab实现变压器老化过程的行为模拟与源码编写
  • 24.解构赋值
  • Qt5 的跨平台开发详细讲解
  • 嘉立创eda元件导出到kicad库以使用
  • Spring Ai 1.0.1中存在的问题:使用MessageChatMemoryAdvisor导致System未被正确的放在首位
  • 拆解本地组策略编辑器 (gpedit.msc) 的界面和功能
  • 相似度、距离
  • 【C++】--函数参数传递:传值与传引用的深度解析
  • C++ csignal库详细使用介绍
  • CXR-LT 2024:一场关于基于胸部X线的长尾、多标签和零样本疾病分类的MICCAI挑战赛|文献速递-深度学习人工智能医疗图像
  • 25年8月通信基础知识补充1:中断概率与遍历容量、Sionna通信系统开源库、各种时延区分
  • 针对pycharm缩进空格报错--解决方法
  • Linux下的网络编程