【代码】Python3|无GUI环境中使用Seaborn作图的学习路线及代码(阴影折线图)

我有个需求是需要画图,让GPT帮我生成了一下学习计划。
学习路线依照GPT的来的,使用的Prompt工具是https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor。

文章目录

  • Prerequisite
  • Main Curriculum
    • 1.1 Seaborn介绍
      • Seaborn基础
      • 保存图形为文件
      • 练习
    • 1.2 单变量数据可视化
      • 直方图
      • 折线图(Line Plots)
      • 散点图(Scatter Plots)
      • 练习
    • 1.3 多变量数据可视化
      • 使用Seaborn创建散点图
      • 练习
    • 1.4 阴影折线图

Prerequisite

由于您已经拥有足够的Python基础和数学知识,我们将直接进入Seaborn的学习计划:
我已经根据您的需求调整了学习计划,考虑到您在没有图形用户界面的服务器上学习。🦌


在开始之前,我们将关注在非图形界面环境下的准备:
0.1 数据可视化的重要性:探讨数据可视化的意义及其在数据科学中的作用,特别是在非图形界面环境下的应用。
0.2 Python数据可视化库概览:介绍Python中常用的数据可视化库,并特别强调在没有图形界面时如何利用这些库。
0.3 Seaborn库的安装和设置:指导如何在不同环境中安装Seaborn库及其依赖,特别是在没有图形界面的服务器上。

Main Curriculum

现在,我们将专注于在无GUI环境中使用Seaborn:
1.1 Seaborn介绍:介绍Seaborn库及其在非图形界面环境下的应用。
1.2 Seaborn的基础:学习如何使用Seaborn进行数据集加载和可视化基础,并将结果保存为文件。
1.3 单变量数据可视化:使用Seaborn绘制单变量分布的图表,并学习如何将这些图表保存为文件。
1.4 多变量数据可视化:探索使用Seaborn展示多变量关系的图表,并将这些图表保存为文件。
1.5 使用Seaborn进行分类数据可视化:了解如何使用Seaborn绘制分类数据图表,并将图表保存为文件。
1.6 Seaborn中的图表美化和风格设置:学习如何自定义Seaborn图表的外观,并将这些自定义的图表保存为文件。
1.7 Seaborn中的高级绘图:探讨Seaborn中的高级绘图类型和技术,并学习如何将这些图表保存为文件。
1.8 使用Seaborn处理大规模数据:介绍如何使用Seaborn有效处理和可视化大型数据集,并将结果保存为文件。
1.9 实战项目:完成一个涉及数据清理、分析和使用Seaborn进行可视化的实战项目,并将所有图表保存为文件。
1.10 Seaborn社区和资源:介绍如何获取更多Seaborn资源和如何参与Seaborn社区,特别是在处理非GUI环境中的可视化。

1.1 Seaborn介绍

现在我们将开始专门为服务器环境(无图形用户界面)定制的Seaborn学习计划。🦌


主题: 在服务器环境下使用Seaborn


由于您在没有图形界面的服务器上工作,我们将侧重于如何将Seaborn的可视化结果保存为文件,以便您可以查看这些图像而无需图形界面。

Seaborn基础

首先,我们将确保Seaborn库已正确安装在您的服务器上。请在服务器的命令行中执行以下命令来安装Seaborn(如果尚未安装):

pip install seaborn

保存图形为文件

在服务器环境下使用Seaborn时,您可以将图形直接保存到文件中,而不是在屏幕上显示。这可以通过使用Matplotlib的savefig方法来实现。以下是一个示例,展示如何创建一个简单的Seaborn图形并将其保存为PNG文件:

import seaborn as sns
import matplotlib.pyplot as plt# 创建数据
tips = sns.load_dataset("tips")# 创建一个图形
sns.set(style="whitegrid")
ax = sns.boxplot(x=tips["total_bill"])# 将图形保存到文件
plt.savefig('boxplot.png')

在这个例子中,我们首先导入Seaborn和Matplotlib,然后加载一个示例数据集。我们使用Seaborn创建了一个箱形图,然后使用Matplotlib的savefig方法将图形保存为名为boxplot.png的文件。

注:初次使用会有点慢。
在这里插入图片描述

练习

请尝试自己创建一个Seaborn图形,并将其保存为文件。您可以选择不同的数据集和图形类型,如散点图、直方图或线图。


接下来,我们将学习如何使用Seaborn进行单变量数据可视化,并将结果保存为文件。请准备您的数据和脚本,我们将在下一节课中深入探讨。如果您有任何问题,或者需要进一步的解释,请随时提问。当您准备好继续下一课时,请说 “/continue”

现在,我们将继续我们的课程,专注于在服务器环境下使用Seaborn进行单变量数据可视化并将结果保存为文件。🦌


主题: 单变量数据可视化与文件保存


1.2 单变量数据可视化

单变量数据可视化是数据分析的基础,它帮助我们理解数据集中单个变量的分布情况。在没有图形用户界面的服务器环境下,我们依然可以使用Seaborn生成有用的可视化,并将这些可视化保存为文件进行查看。

单变量数据可视化可以通过多种方式进行,包括但不限于直方图、密度图和计数图。

直方图

以下是如何使用Seaborn创建直方图并将其保存为文件的示例:

import seaborn as sns
import matplotlib.pyplot as plt# 加载数据
data = sns.load_dataset('tips')# 创建直方图
sns.histplot(data['total_bill'], kde=True)# 定义标题
plt.title('Total Bill Histogram')# 保存图形到文件
plt.savefig('total_bill_histogram.png')

在这个例子中,我们绘制了tips数据集中total_bill列的直方图,并使用了内核密度估计(KDE)来平滑分布。然后,我们为图形设置了标题,并将其保存为名为total_bill_histogram.png的文件。

结果:
在这里插入图片描述

接下来,我们将介绍如何使用Seaborn绘制折线图和散点图,并将它们保存为文件,以便在没有图形用户界面的服务器环境下查看。


折线图(Line Plots)

折线图非常适合展示数据随时间或有序类别变化的趋势。以下是使用Seaborn创建折线图并将其保存为文件的示例:

import seaborn as sns
import matplotlib.pyplot as plt# 加载数据
data = sns.load_dataset('flights')# 转换数据为适合折线图的格式
pivot_data = data.pivot(index="month", columns="year", values="passengers")# 创建折线图
sns.lineplot(data=pivot_data)# 定义标题
plt.title('Flights Passengers by Month')# 保存图形到文件
plt.savefig('flights_passengers_lineplot.png')

在这个例子中,我们使用了flights数据集,该数据集记录了不同年份、不同月份的航班乘客数量。我们首先将数据转换为适合折线图的格式,然后使用Seaborn的lineplot方法绘制了折线图,并将其保存为flights_passengers_lineplot.png文件。

在这里插入图片描述

散点图(Scatter Plots)

散点图用于展示两个连续变量之间的关系。以下是使用Seaborn创建散点图并将其保存为文件的示例:

import seaborn as sns
import matplotlib.pyplot as plt# 加载数据
tips = sns.load_dataset('tips')# 创建散点图
sns.scatterplot(x='total_bill', y='tip', data=tips)# 定义标题
plt.title('Tip vs Total Bill')# 保存图形到文件
plt.savefig('tip_vs_total_bill_scatterplot.png')

在这个例子中,我们使用了tips数据集来展示小费金额与账单总额之间的关系。我们使用Seaborn的scatterplot方法来创建散点图,并将其保存为tip_vs_total_bill_scatterplot.png文件。

在这里插入图片描述

练习

请尝试针对您感兴趣的数据集创建不同类型的单变量图形,并将它们保存为文件。尝试不同的图形类型和参数设置,以更好地理解您的数据。


接下来,我们将探讨如何使用Seaborn进行多变量数据可视化,并确保在无图形用户界面的环境中仍然能够查看和分析这些可视化结果。请准备您的数据和代码,我们很快就会开始这一部分。如果您有任何问题或需要进一步的解释,请随时提问。当您准备好继续下一课时,请说 “/continue”

现在我们将继续我们的课程,探讨多变量数据可视化以及如何将生成的图形保存为文件。🦌


1.3 多变量数据可视化

多变量数据可视化是指同时观察两个或更多变量的分布情况。这可以帮助我们理解变量之间的关系,例如相关性、模式和趋势。Seaborn提供了多种函数来创建多变量数据图形,例如散点图、线图、热图等。

使用Seaborn创建散点图

散点图是展示两个连续变量之间关系的经典方法。以下是如何使用Seaborn创建散点图并将其保存为文件的示例:

import seaborn as sns
import matplotlib.pyplot as plt# 加载数据集
data = sns.load_dataset("tips")# 创建散点图
sns.set(style="whitegrid")
ax = sns.scatterplot(x='total_bill', y='tip', data=data)# 添加标题和标签
ax.set(title='Total Bill vs Tip', xlabel='Total Bill', ylabel='Tip')# 保存图形到文件
plt.savefig('scatterplot.png')

在这个示例中,我们使用scatterplot函数来创建一个散点图,展示了总账单和小费之间的关系。

练习

请尝试为您感兴趣的两个变量创建一个散点图,并将其保存为文件。探索不同的变量组合,尝试理解它们之间的关系。


接下来,我们将介绍如何使用Seaborn进行分类数据可视化。请准备您的数据和代码,我们将在下一节课中继续深入讨论。如果您在实践中遇到任何问题,或者需要进一步的解释,请随时提问。当您准备好继续下一节课时,请说 “/continue”

1.4 阴影折线图

GPT这些内容给了之后其他的对我不重要了,我不需要它再生成了。

我的需求是做阴影折线图,然后搜了一下找到了知乎代码,我把结尾改成保存了然后完整代码是:

import random
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as snssns.set_style("darkgrid")
plt.title("Reward Log")
data = pd.DataFrame.from_dict({"step": [random.randint(1, 100) for _ in range(5000)], # 随机生成 5000 个 step 索引"reward": [random.random() for _ in range(5000)],      # 为每一个 step 随机生成对应的reward}
)
sns.lineplot(data=data, x="step", y="reward", color="orange")  # 传入 DataFrame 绘制# 保存图形到文件
plt.savefig('shadowlineplot.png')

在这里插入图片描述

参考;这种带阴影的折线图是怎么做出来的啊? - 何枝的回答 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品推荐 - GX-SOPC-5CEFA5-M484 FPGA核心开发板

● 核心板采用8层板精心设计 ● FPGA:采用Intel(ALTERA) Cyclone V 5CEFA5,Les为77K,内嵌存储器为4460Kb,硬件乘法器为300个,最大等效门数约2300万门;新增DSP Block(150…

Unity3D

一、C# 输入输出 二、三维数学

线性dp P1004 【方格取数】题解

代码比较简单的一题,重在思路(除非写假了) 传送门https://www.luogu.com.cn/problem/P1004 我的最初思路是两次二维dp,即贪心的取,用pre记录前一个位置,只有80pts,要是是在蓝桥拿分就可以跑路…

使用reduce递归获取有多层嵌套的数组中的children

常见的多层嵌套的数组,如下 const items [{id: 1,name: "item1",children: [{id: 11,name: "item11",children: [{id: 111, name: "item111"},{id: 112, name: "item112"}]},{id: 12,name: "item12",children:…

MySQL--优化(SQL语句执行慢,如何分析)

MySQL–优化(SQL语句执行慢,如何分析) 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、如何分析 聚合查询: 对于涉及大量数据的聚合操作,如果可能的…

【c++】STL--List的实现

目录 一. List的数据结构 二. List实现的基本框架 1. list的结点结构类 2. List的迭代器类 正向迭代器 反向迭代器 3. List操作接口的实现 1. 默认成员函数 构造函数 和 析构函数 拷贝构造函数 和 赋值运算符重载 2. 修改相关函数接口 insert 和 erase …

R语言简介、环境与基础语法及注释

R语言简介、环境与基础语法及注释 一、R语言1.R语言简介2.R语言官网3.R语言中国的镜像网站4.R语言下载5.R语言的历史 二、R语言环境1.Windows安装1.1 去 R 语言下载的镜像站点的列表下载1.2 选择版本进行下载1.3 点击运行1.4 一路默认,安装完毕! 2.Linux…

【AI视野·今日Robot 机器人论文速览 第八十期】Fri, 1 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Fri, 1 Mar 2024 Totally 32 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Humanoid Locomotion as Next Token Prediction Authors Ilija Radosavovic, Bike Zhang, Baifeng Shi, Jathushan Rajasegaran…

ShardingSphere-SQL 解析 Issue 处理流程

ShardingSphere-SQL 解析 Issue 处理流程 这是之前给社区写的 SQL 解析 Issue 的处理流程,可以帮助社区用户快速参与到 ShardingSphere-SQL 解析任务当中。 ShardingSphere SQL 解析 issue 列表 Issue 背景说明 当前 Issue 使用自定义的爬虫脚本从对应的数据库官…

MySQL-----视图

一 视图 ▶ 介绍 视图view是一个虚拟表,非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用视图名称即可获取结果集,并可以将其当作表来使用。 数据库中存放了视图的定义&…

Java程序员修炼之道 之 Logging

1. 一个最基本的例子 使用Logging框架写Log基本上就三个步骤 引入loggerg类和logger工厂类 声明logger 记录日志 下面看一个例子 //1. 引入slf4j接口的Logger和LoggerFactory import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class UserService { //…

C#封装常用的Redis工具类

1.请先安装CSRedisCore 接口: namespace Tools.Redis {public interface IRedisTool{bool SetLongValue(string key, string value);bool SetValue(string key, string value, int outSecond);bool SetValue(string key, string value);bool Exists(string key);b…

企业数字人虚拟形象定制解决方案

随着数字化浪潮的推进,虚拟形象在各个领域都展现出了强大的潜力,美摄科技作为业界领先的数字人虚拟形象定制解决方案提供商,致力于为企业打造独一无二的虚拟形象,助力企业在数字世界中塑造独特的品牌形象。 一、解决方案概览 美…

02-prometheus监控-服务器节点监控node-exporter

一、概述 prometheus,本身是一个【数据收集】和【数据处理】的工具,如果效果要监控一台服务器物理机,有两种方式,一种是在物理机上部署“node-export”来收集数据上报给prometheus,另一种是“自定义监控”;…

SqlServer 默认值约束示例

创建表,创建时指定 money 字段默认值为0.00; create table t_24 ( account varchar(19) not null, id_card char(18) not null, name varchar(20) not null, money decimal(16,2) default 0.00 not null ); 录入2条记录,money字…

HTML极速入门

HTML基础 什么是HTML HTML(Hyper Text Markup Language),超文本标记语言. 超文本:比文本更强大.通过链接和交互式方式来组织和呈现信息的文本形式.不仅仅有文本,还可能包括图片,音频,或者自己经审阅过它的学者所加的评注,补充或脚注等. 标记语言:由标签构成的语言 HTML的标…

es6 相关面试题

1 var, let ,const 区别? 2 手写将对象进行合并 手写合并对象 3 普通函数和箭头函数区别? 4 find 和 filter的区别? 5 some和every区别?

ES核心概念(45-48)(56-62)(101-103)

ES集群 ES集群(Cluster)包含多个节点(服务器),整体提供服务 核心概念 索引Index:类似于mysql中的表 映射Mapping:数据的结构信息 文档:相当于表中的一条记录 分片: 将数据分成多片…

java 面试题总结

1锁粗化和锁消除&#xff0c;锁膨胀和锁升级的区别。 https://www.cnblogs.com/xuxinstyle/p/13387778.html .无锁 < 偏向锁 < 轻量级锁 < 重量级锁 &#xff0c;说的时候不要忘记说无锁状态 2.Map 的实现&#xff0c;线程安全的实现 1、ConcurrentHashMap在JDK 1.7…

第五套CCF信息学奥赛c++练习题 CSP-J认证初级组 中小学信奥赛入门组初赛考前模拟冲刺题(阅读程序题)

第五套中小学信息学奥赛CSP-J考前冲刺题 二、阅读程序题 (程序输入不超过数组或字符串定义的范围&#xff0c;判断题正确填√错误填X;除特殊说明外&#xff0c;判断题 1.5分&#xff0c;选择题3分&#xff0c;共计40分) 第一题 递归函数 1 #include<iostream> 2 usin…