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

news2024/12/27 12:45:30

我有个需求是需要画图,让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 sns

sns.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.coloradmin.cn/o/1489699.html

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

相关文章

瑞芯微RK3588 C++部署Yolov8检测和分割模型

最近这一个月在研究国产瑞芯微板子上部署yolov8的检测和分割模型,踩了很多坑,记录一下部署的过程和遇到的一些问题: 1 环境搭建 需要的环境和代码主要包括: (1)rknn-toolkit2-1.5.2:工具链&am…

uniapp开发android原生插件

一、下载原生开发SDK Android 离线SDK - 正式版 | uni小程序SDK (dcloud.net.cn)、 https://nativesupport.dcloud.net.cn/AppDocs/download/android.html 将开发uniappa原生android的插件解压到ben本地目录,目录结构如下: 接下就可以使用 UniPlugin-Hel…

12 状态优先级

概念 cpu需要执行很多进程,有很多进程排在队列中,每个进程加载后运行一定的时间段,然后切换下一个进程。cpu如何判断进程需不需要加载,什么时候加载,依靠进程的状态和优先级属性来判断,进程调度&#xff0…

Node.js与Webpack笔记(一)

这里使用的16.19.0版本,官网和github没找到,去黑马2023年课程里找 篇幅较大会卡,此篇幅不写Webpack部分,留着下一篇 初识 1.什么是Node.js? Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码&#xff…

A/D转换

硬件电路模型 模数转换代码 main.c #include <REGX52.H> #include "LCD1602.h" #include "Delay.h" #include "XPT2046.h"unsigned int ADValue; int main(){LCD_Init();LCD_ShowString(1,1,"ADJ NTC RG");while(1){ADValue …

iOS 17.0 UIGraphicsBeginImageContextWithOptions 崩溃处理

在升级到iOS17后你会发现&#xff0c;之前版本运行的很好&#xff0c;这个版本突然会出现一个运行闪退。报错日志为*** Assertion failure in void _UIGraphicsBeginImageContextWithOptions(CGSize, BOOL, CGFloat, BOOL)(), UIGraphics.m:410 跟踪到具体的报错位置如下所示&a…

redis09 集群(cluster)

思维草图 为什么要使用集群 单台redis内存容量的限制单台redis并发写量太大有性能瓶颈 redis集群认识 redis集群是对redis的水平扩容&#xff0c;即启动N个redis节点&#xff0c;将整个数据分布存储在这个N个节点中&#xff0c;每个节点存储总数据的1/N。 如下图&#xff1…

win11部署自己的privateGpt(2024-0304)

什么是privateGpt? privategpt开源项目地址 https://github.com/imartinez/privateGPT/tree/main 官方文档 https://docs.privategpt.dev/overview/welcome/welcome PrivateGPT是一个可投入生产的人工智能项目&#xff0c;利用大型语言模型&#xff08;LLMs&#xff09;的…

Windows安装SSH教程

Windows安装SSH教程 一、SSH1.SSH简介2.SSH功能3.SSH验证3.1 第一种级别&#xff08;基于口令的安全验证&#xff09;3.2 第二种级别&#xff08;基于密匙的安全验证&#xff09; 4.SSH层次4.1 传输层协议 [SSH-TRANS]4.2 用户认证协议 [SSH-USERAUTH]4.3 连接协议 [SSH-CONNEC…

场景问题: VisualVM工具Profiler JDBC不是真实执行的SQL

1. 问题 诡异的问题表象&#xff1a; 前端反馈分页接口的Total字段一直为0 使用Visualvm中的 Profiler 注入到应用后&#xff0c;查看JDBC监控得到了分页接口执行的SQL&#xff0c;复制出来执行是55. 此时还没有注意到 IN 的范围中有一个特别的值 NULL &#x1f928; 2. 排查…

【运维必学】2.零基础搞IT运维之服务器操作系统基础知识储备

微信改版了&#xff0c;现在看到我们全凭缘分&#xff0c;为了不错过【全栈工程师修炼指南】重要内容及福利&#xff0c;大家记得按照上方步骤设置「接收文章推送」哦~ 文章目录&#xff1a; 温馨提示&#xff1a;作者最近开通的知识星球&#xff0c;全栈系列从门到实践教程将会…

QT----写完的程序打包为APK在自己的手机上运行

目录 1、qt安装android组件2、打开qt配置Android 环境3、手机打开开发者模式&#xff0c;打开usb调试&#xff0c;连接电脑4、运行代码 1、qt安装android组件 qtcreater–工具-QTMaintenaceTool-startMaintenaceTool—登陆—添加或修改组件—找到android&#xff0c;安装 若是…

Windows环境MySQL全量备份+增量备份

目录 一、环境准备 1.1.安装MySQL 1.2.添加log-bin日志配置 二、创建测试数据库和表 2.1.创建测试数据库 2.2.创建测试数据表 三、全量备份恢复数据库 3.1.全量备份数据库 3.2全量恢复数据库 四、增量备份恢复数据库 4.1.增量备份数据库 4.2.增量恢复数据库 五、…

抽象步骤条(2.0版本)

vue3 router ele-plus 猜猜看为什么使用组件库&#xff01; 他呀的&#xff01;查看密码要自己写&#xff0c;验证信息也要自己写&#xff0c;所以说会用组件库会轻松一点&#xff0c;&#xff0c;&#xff0c; 代码如下 <template><div class"main"&g…

自动化构建平台(五)之Jenkins初始化配置以及插件安装操作

文章目录 前言一、安装必要插件二、系统参数配置三、全局工具配置总结 前言 上一篇我们介绍了Jenkins的安装和登录等相关操作&#xff0c;今天给大家介绍登录Jenkins后的一些初始化配置和插件安装的操作。因为如果要使用Jenkins来进行代码构建&#xff0c;必须先安装相关的插件…

WebDAV之π-Disk派盘+人生Life

人生Life是一款日程软件,在这款待办的日程软件当中各种功能极为的完善,完全的足够用户在日常当中的使用,你的待办方面的各种内容都能够在软件上面进行规划和填充,通过待办事项来帮助用户提高在日常当中的效率,对于用户来说这款待办事项的软件是绝佳的选择。 π-Disk派盘 …

VScode---php环境搭建

文章目录 1.下载php Dehug;php server2.下载php环境3.配置环境变量5.配置php.ini文件6.设置vscode6.测试遇到的问题 1.下载php Dehug;php server 2.下载php环境 下载地址&#xff1a;https://www.php.net/downloads.php 3.配置环境变量 C:\Users\hacker>php -v PHP 8.3.3 (…

c++编程复习之字符数组:电报文字

电报文字 内存限制&#xff1a;128Mb 时间限制&#xff1a;1000s 提交&#xff1a;138 解决&#xff1a;13 题目描述 输入一行电报文字&#xff0c;将字母变成其下一字母&#xff08;如’aa’变成’bb’……’zz’变成’&#xff41;&#xff41;’其它字符不变&#xff09;。 …

【leetcode】随机链表的复制

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 点击查看题目 思路: struct Node* copyRandomList(struct Node* head) {struct Node* curhead;//1.copy原链…

温湿度传感器SHT21

SHT21是一款基于IIC的温湿度传感器&#xff0c;它的引脚及定义如下&#xff1a; 标准的IIC器件&#xff0c;没有其他多余的引脚&#xff0c;应用框图如下&#xff1a; 温度的测量范围是-40到125℃&#xff0c;湿度测量范围0-100%RH&#xff0c;具体参数及采样精度见下图&#x…