【代码】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 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')

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是Vue的服务端渲染(SSR)?它有什么作用?

Vue的服务端渲染(SSR)是指将Vue组件在服务器端进行渲染,然后将已经渲染好的页面返回给浏览器,相比于传统的客户端渲染,SSR可以更好地优化SEO和加速首屏加载速度。在传统的客户端渲染中,浏览器需要加载所有的…

【Spring云原生】Spring官宣,干掉原生JVM,推出 Spring Native!整体提升性能!Native镜像技术在Spring中的应用

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:从入门到入魔》 🚀 本…

Linux——MySQL主从复制与读写分离

实验环境 虚拟机 3台 centos7.9 网卡NAT模式 数量 1 组件包mysql-5.6.36.tar.gz cmake-2.8.6.tar.gz 设备 IP 备注 Centos01 192.168.223.123 Amoeba Centos02 192.168.223.124 Master Centos03 192.168.223.125 Slave MySQL安装 主从同时操作 安装所需要的…

【探索AI】二十二 深度学习之第5周:生成对抗网络(GAN)

生成对抗网络(GAN) GAN的基本原理与结构常见的GAN模型(如DCGAN、StyleGAN等)图像生成与风格迁移任务实践:使用GAN进行图像生成或风格迁移任务 GAN的基本原理与结构 生成对抗网络(GAN)的基本原理…

【经验】f-string 的一些点

【经验】f-string 的一些点 省几个字别数错了对齐它现在几点 省几个字 让 f-string 给你写表达式,在 f-string 中使用 来自动打印表达式 a 10 b 25 print(f"{a b }") >>> a b 35别数错了 对于过大的数字难以一眼看出来它的数量级&#xf…

Android 中get请求网络数据 详细举例

请求链接 https://api.bilibili.com/x/web-interface/ranking 1.添加网络权限 依赖等 implementation com.squareup.okhttp3:okhttp:4.9.3 implementation com.google.code.gson:gson:2.8.92.写请求类network package com.example.myapplication;import android.graphics.Bi…

现代信号处理学习笔记(三)信号检测

通过观测数据判断信号是否存在,这一问题称为信号检测。 目录 前言 一、统计假设检验 1、信号检测的基本概念 2、信号检测理论测度 比率测度 概率测度 3、决策理论空间 二、概率密度函数与误差函数 1、概率密度函数 2、误差函数与补余误差函数 三、检测概…

TypeError: the JSON object must be str, bytes or bytearray, not dict

参考文章:https://blog.csdn.net/yuan2019035055/article/details/124934362 Python基础系列(一)搞懂json数据解析与字典之间的关系 代码: 报错信息: TypeError: the JSON object must be str, bytes or bytearray, not dict …

Python字符串中%d,%.f的用法

在字符串中,我们经常需要改变其中的一些几个字符,比如 第一个d%就是epoch1,会随着epoch的变化而变化。同理,后面的也是。打印出的结果就是 其中,epoch迭代了3次,从0开始。会发现 d%,是整数&…

.NET高级面试指南专题十四【 观察者模式介绍,最常用的设计模式之一】

简介: 观察者模式(Observer Pattern)是一种行为型设计模式,其目的是定义了一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。 原理: 在观察者模式中…

002-CSS-三角形

三角形 普通三角形带阴影的三角形:box-shadow带阴影的三角形:filter 普通三角形 💡 Tips:设置 div 盒子宽高为零,使用单边框实现 .triangle {width: 0;height: 0;border: 20px solid transparent;border-top-color: …

把python完全卸载干净

1.winR,输入control回车,点击程序和功能,在搜索框输入python,右键点击卸载 2、找到Python安装路径,把所有文件全部删除。 安装路径可以打开CMD输入:where python 3、强制删除Python.exe 打开cmd&#xff…

使用Java生成JWT(JSON Web Token)的详细指南

介绍 在现代应用程序中,身份验证和授权是至关重要的。JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式用于在各方之间安全地传输信息。在本文中,我们将学习如何使…

大厂报价查询系统性能优化之道!

0 前言 机票查询系统,日均亿级流量,要求高吞吐,低延迟架构设计。提升缓存的效率以及实时计算模块长尾延迟,成为制约机票查询系统性能关键。本文介绍机票查询系统在缓存和实时计算两个领域的架构提升。 1 机票搜索服务概述 1.1 …

在k8s上部署dolphinscheduler

(作者:陈玓玏) 一、 前提条件 已部署k8s,版本信息如下: k8s为单机部署;已部署nfs,版本如下; 二、 部署helm 以下步骤安装的是二进制版本,如果通过脚本安装&#…

Bert Encoder和Transformer Encoder有什么不同

前言:本篇文章主要从代码实现角度研究 Bert Encoder和Transformer Encoder 有什么不同?应该可以帮助你: 深入了解Bert Encoder 的结构实现深入了解Transformer Encoder的结构实现 本篇文章不涉及对注意力机制实现的代码研究。 注:…

在Linux以命令行方式(静默方式/非图形化方式)安装MATLAB(正版)

1.根据教程,下载windows版本matlab,打开图形化界面,选择linux版本的只下载不安装 2.获取安装文件夹 3.获取许可证 4.安装 (1)跳过引用文章的2.2章节 (2)本文的安装文件夹代替引用文章的解压IS…

CSS变量和@property

CSS变量 var() CSS 变量是由CSS作者定义的实体,其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名,并使用特定的 var() 来访问。(比如 color: var(--main-color);)。 基本用法 CSS变量定义的作用域只在定义该…

Rio: Order-Preserving and CPU-Efficient Remote Storage Access——论文泛读

EuroSys 2023 Paper 论文阅读笔记整理 问题 现代NVMe SSD和RDMA网络提供了更高的带宽和并发性,但现有的网络存储系统(例如,基于结构的NVMe),由于存储订购保证效率低下,无法充分利用这些新设备。在这些系统…

[DevOps云实践] 3大云厂商(AWS/GoogleCP/Azure)的服务对比一览

[DevOps云实践] 3大云厂商(AWS/GoogleCP/Azure)的服务对比一览 如今有很多人在使用云端或者把他们的基础架构迁移到云端。每个云服务提供商都有其优势和劣势,大部分情况下您的选择将基于您想要在云中构建什么。您公司的各个团队也很可能会倾向于为他们的特定项目使用不同的…