多样化数据可视化方法的全面示例:基于Python的多样化数据可视化

文章目录

  • 前言
  • 代码
  • 效果展示


前言

本文演示了使用Python进行温度数据的多样化可视化方法。通过导入、处理和分析气象数据,我们生成了多种图表,包括直方图、核密度估计图、箱型图、小提琴图、条形图、山脊图、经验累积分布函数图和折线图。这些图表帮助我们更直观地理解温度数据的分布和变化趋势。我们利用了Seaborn、Matplotlib和Plotly等数据可视化库,以美观和易于理解的方式展示数据。

代码

# Import necessary libraries
import pandas as pd
from pandas.api.types import CategoricalDtype
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
from joypy import joyplot# 导入数据
df = pd.read_csv('D:/Pythonmatlab/2326060760python数据分布/weatherData.csv')# 设置季节为分类数据类型
season = CategoricalDtype(['Winter', 'Spring', 'Summer', 'Fall'])
df['Season'] = df['Season'].astype(season)# 打印前5行数据
print(df.head(5))#%%
# 直方图# 设置图表大小
plt.figure(figsize=(10, 6))# 生成直方图
sns.histplot(df, x='Temp')# 显示图表
plt.show()#%%
# 分地点的堆叠直方图# 设置图表大小
plt.figure(figsize=(10, 6))# 生成堆叠直方图
sns.histplot(df, x='Temp', hue='Location', multiple='stack')# 设置标签
plt.title('Distribution of All Observed Temperatures', fontsize=25, y=1.03)
plt.xlabel('Temperature (F)', fontsize=13)
plt.ylabel('Count', fontsize=13)# 显示图表
plt.show()#%%
# 分季节的直方图# 生成分季节的直方图
g = sns.displot(df, x='Temp', col='Season', hue='Location', multiple='stack', binwidth=5, height=3, col_wrap=2, facet_kws=dict(margin_titles=False))# 设置轴标签
g.set_axis_labels('Temperature (F)', 'Count')# 显示图表
plt.show()#%%
# 分季节的垂直直方图# 生成分季节的垂直直方图
g = sns.displot(df, x='Temp', col='Season', hue='Location',multiple='stack', binwidth=5, height=1, aspect=6,col_wrap=1, facet_kws=dict(margin_titles=True))# 设置轴标签
g.set_axis_labels('Temperature (F)', 'Count', fontsize=17)# 显示图表
plt.show()#%%
# Plotly直方图# 设置图表大小
plt.figure(figsize=(10, 6))# 生成Plotly直方图
plot = px.histogram(df, x='Temp',barmode='overlay', color='Location', facet_row='Season')# 设置标题和标签
plot.update_layout(title={'text': "Distributions of Temperature\<br><sup>Sorted by Season and \Location</sup>",'xanchor': 'left','yanchor': 'top','x': 0.1}, legend_title_text='Location',xaxis_title='Recorded Temperature (F)')
plot.for_each_annotation(lambda x: x.update(text=x.text.split("=")[1]))
plot.update_yaxes(title='Count')# 设置颜色和背景
plot.update_layout(plot_bgcolor='white')
plot.update_xaxes(showline=True, linecolor='gray')
plot.update_yaxes(showline=True, linecolor='gray')# 显示图表
plot.show()#%%
# 核密度估计图(KDE Plots)# 设置图表大小
plt.figure(figsize=(10, 6))# 生成KDE图
sns.kdeplot(data=df, x='Temp', hue='Location', fill=False)# 设置标签
plt.title('KDE Plot of Temperatures', fontsize=25, y=1.03)
plt.xlabel('Temperature (F)', fontsize=13)
plt.ylabel('Density', fontsize=13)# 显示图表
plt.show()#%%
# 分季节的KDE图# 生成分季节的KDE图
g = sns.displot(df, x="Temp", col="Season", hue='Location',kind='kde', height=1, aspect=7, col_wrap=1,fill=True, facet_kws=dict(margin_titles=True))# 设置轴标签
g.set_axis_labels('Temperature (F)', 'Density', fontsize=16)# 显示图表
plt.show()#%%
# 分季节的带填充KDE图# 生成分季节的带填充KDE图
g = sns.displot(df, x="Temp", col="Season", hue='Location', kde=True, height=1, aspect=7, col_wrap=1, fill=True, facet_kws=dict(margin_titles=True))# 设置轴标签
g.set_axis_labels('Temperature (F)', 'Density', fontsize=16)# 显示图表
plt.show()#%%
# 山脊图(Joy Plots or Ridge Plots)# 重塑数据
dfJoy = df.pivot(index=['Entry', 'Season'], columns='Location', values='Temp')
print(dfJoy.head())# 生成山脊图
fig, axes = joyplot(data=dfJoy,by='Season',column=['City A', 'City B', 'City C'],color=['#43bf60', '#2b7acf', '#f59f0a'],alpha=.67,legend=True,overlap=2,linewidth=.5,figsize=(10, 6))# 设置标签
plt.xlabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 箱型图(Box Plots)# 生成箱型图
plot = px.box(df, x='Season', color='Location', y='Temp', color_discrete_sequence=px.colors.cyclical.IceFire)# 更新布局和标题
plot.update_layout(title={'text': "Seasonal Temperature Distributions\<br><sup>By Season for Cities A, B, \and C</sup>",'xanchor': 'left','yanchor': 'top','x': 0.1}, legend_title_text='Location:',xaxis_title='',yaxis_title='Temperature (F)')# 更新样式
plot.update_layout(plot_bgcolor='white')
plot.update_xaxes(showline=True, linecolor='gray')
plot.update_yaxes(showline=True, linecolor='gray')# 显示图表
plot.show()#%%
# 小提琴图(Violin Plots)# 设置图表大小
plt.figure(figsize=(10, 6))# 生成小提琴图
sns.violinplot(data=df, x='Temp', y='Season', hue='Location',inner='quartile', palette='Set2')# 设置标签
plt.title('Violin Plot of Observed Temperatures', fontsize=25, y=1.01)
plt.xlabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 分类数据散点图(Strip and Swarm Plots)# 设置图表大小
plt.figure(figsize=(10, 6))# 生成strip plot
sns.stripplot(data=df, x='Temp', y='Season', hue='Location', jitter=True, palette="magma", alpha=.75)# 设置标签
plt.title('Strip Plot of Observed Temperatures', fontsize=25, y=1.01)
plt.xlabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 设置图表大小
plt.figure(figsize=(10, 6))# 生成strip plot(带dodge选项)
sns.stripplot(data=df, x='Temp', y='Season', hue='Location', jitter=True, palette="magma", dodge=True, alpha=.5)# 设置标签
plt.title('Strip Plot of Observed Temperatures', fontsize=25, y=1.01)
plt.xlabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 设置图表大小
plt.figure(figsize=(10, 6))# 生成swarm plot
sns.swarmplot(data=df, x='Temp', y='Season', hue='Location', palette='magma')# 设置标签
plt.title('Swarm Plot of Observed Temperatures', fontsize=25, y=1.01)
plt.xlabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 设置图表大小
plt.figure(figsize=(10, 6))# 生成swarm plot(带dodge选项)
sns.swarmplot(data=df, x='Temp', y='Season', hue='Location', palette='magma', dodge=True)# 设置标签
plt.title('Swarm Plot of Observed Temperatures', fontsize=25, y=1.01)
plt.xlabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 经验累积分布函数图(ECDF Plots)# 生成ECDF图
sns.displot(df, x='Temp', hue='Location', kind='ecdf', height=5)# 设置标签
plt.xlabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 分季节的ECDF图# 生成分季节的ECDF图
g = sns.displot(df, x='Temp', hue='Location', col='Season', kind='ecdf', height=4)# 设置轴标签
g.set_axis_labels('Temperature (F)', 'Cumulative Distribution')# 显示图表
plt.show()#%%
# 折线图(Line Plots)# 设置图表大小
plt.figure(figsize=(10, 6))# 生成折线图
sns.lineplot(data=df, x='Entry', y='Temp', hue='Location', ci=None, palette='tab10')# 设置标签
plt.title('Temperature Trends Over Time', fontsize=25, y=1.01)
plt.xlabel('Entry', fontsize=13)
plt.ylabel('Temperature (F)', fontsize=13)# 显示图表
plt.show()#%%
# 分季节的折线图# 生成分季节的折线图
g = sns.relplot(data=df, x='Entry', y='Temp', hue='Location', kind='line', col='Season', col_wrap=1, height=4, aspect=5, facet_kws=dict(margin_titles=True))# 设置轴标签
g.set_axis_labels('Entry', 'Temperature (F)', fontsize=16)# 显示图表
plt.show()#%%
# 分地点的折线图# 生成分地点的折线图
g = sns.relplot(data=df, x='Entry', y='Temp', hue='Season', kind='line',col='Location', col_wrap=1, height=4, aspect=5, facet_kws=dict(margin_titles=True))# 设置轴标签
g.set_axis_labels('Entry', 'Temperature (F)', fontsize=16)# 显示图表
plt.show()# Create Displot:
g = sns.displot(df, x='Temp', col='Season', hue='Location',kind='ecdf', height=3, col_wrap=2,facet_kws=dict(margin_titles=True))# Set labels:
# g.fig.suptitle('Distributions of Temperature by Season',
#                fontsize=25, x=0.47, y=1.03, ha='center')
g.set_axis_labels('Temperature (F)', 'Count')
plt.show()
#%%df = sns.load_dataset('iris')# Plot
plt.figure(figsize=(10, 8), dpi=80)
sns.pairplot(df,kind="scatter",hue="species",palette='Set1',plot_kws=dict(s=80, edgecolor="white", linewidth=2.5))
plt.show()#%%
df = sns.load_dataset('iris')# Plotsns.pairplot(df)
plt.show()
# 导入鸢尾花数据集
df = sns.load_dataset('iris')# 绘制配对图
plt.figure(figsize=(10, 8), dpi=80)
sns.pairplot(df,kind="scatter",hue="species",palette='Set1',plot_kws=dict(s=80, edgecolor="white", linewidth=2.5))
plt.show()#%%
# 再次导入鸢尾花数据集
df = sns.load_dataset('iris')# 绘制简单的配对图
sns.pairplot(df)
plt.show()

效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Zookeeper之CAP理论及分布式一致性算法

CAP理论 CAP理论告诉我们&#xff0c;一个分布式系统不可能同时满足以下三种 一致性&#xff08;C:consistency&#xff09;可用性&#xff08;A:Available&#xff09;分区容错性&#xff08;P:Partition Tolerance&#xff09; 这三个基本要求&#xff0c;最多只能同时满足…

【Pytorch】数据集的加载和处理(一)

Pytorch torchvision 包提供了很多常用数据集 数据按照用途一般分为三组&#xff1a;训练&#xff08;train&#xff09;、验证&#xff08;validation&#xff09;和测试&#xff08;test&#xff09;。使用训练数据集来训练模型&#xff0c;使用验证数据集跟踪模型在训练期间…

c++包管理器

conan conan search&#xff0c;查看网络库 conan profile detect&#xff0c;生成缓存信息conan new cmake_exe/cmake_lib&#xff0c;创建cmakelists.txtconan install .&#xff0c;执行Conanfile.txt中的配置&#xff0c;生成相关的bat文件 项目中配置Conanfile.txt(或者…

【AIGC】二、mac本地采用GPU启动keras运算

mac本地采用GPU启动keras运算 一、问题背景二、技术背景三、实验验证本机配置安装PlaidML安装plaidml-keras配置默认显卡 运行采用 CPU运算的代码step1 先导入keras包&#xff0c;导入数据cifar10&#xff0c;这里可能涉及外网下载&#xff0c;有问题可以参考[keras使用基础问题…

linux后门教程

linux后门教程 alias 用法 系统默认别名&#xff1a;alias 设置别名&#xff1a;alias lsls -laih 删除别名&#xff1a;unalias ls **加参数&#xff1a;**alias ls‘ls -laih;pwd’ 注意 系统启动默认加载的配置文件 /etc/profile 切换用户就会执行/etc/profile /etc/bash…

正则表达式(Ⅱ)——重复匹配

简介 基本匹配是在其中选择一个进行拼装&#xff0c;而重复匹配则是去指定字符可以出现的次数 基本匹配中的字符要么不出现&#xff0c;匹配上了也只能是出现一次 重复匹配使用一些特殊字符用来指定一个字符在文本中重复的次数。它们分别是加号 、星号 * &#xff0c;问号 ?…

面试经验总结

某生物科技公司 1.代码实现删除一个 list 里面的重复元素 方法1&#xff1a;最简单容易的方法 此方法基于遍历整个列表&#xff0c;将第一个元素添加到新列表中。 # Python 3 code to demonstrate # removing duplicated from list # using naive methods # initializing …

数据结构—链式二叉树-C语言

代码位置&#xff1a;test-c-2024: 对C语言习题代码的练习 (gitee.com) 一、前言&#xff1a; 在现实中搜索二叉树为常用的二叉树之一&#xff0c;今天我们就要通过链表来实现搜索二叉树。实现的操作有&#xff1a;建二叉树、前序遍历、中序遍历、后序遍历、求树的节点个数、求…

免费开源的工业物联网(IoT)解决方案

什么是 IoT&#xff1f; 物联网 (IoT) 是指由实体设备、车辆、电器和其他实体对象组成的网络&#xff0c;这些实体对象内嵌传感器、软件和网络连接&#xff0c;可以收集和共享数据。 IoT 设备&#xff08;也称为“智能对象”&#xff09;范围广泛&#xff0c;包括智能恒温器等…

FastAPI 学习之路(四十四)WebSockets

我们之前的分析都是基于http的请求&#xff0c;那么如果是websockets可以支持吗&#xff0c;答案是可以的&#xff0c;我们来看下是如何实现的。 from fastapi import WebSocket, FastAPI from fastapi.responses import HTMLResponseapp FastAPI()html """&…

架构师机器学习操作 (MLOps) 指南

MLOps 是机器学习操作的缩写&#xff0c;是一组实践和工具&#xff0c;旨在满足工程师构建模型并将其投入生产的特定需求。一些组织从一些自主开发的工具开始&#xff0c;这些工具在每次实验后对数据集进行版本控制&#xff0c;并在每个训练周期后对检查点模型进行版本控制。另…

新手-前端生态

文章目录 新手的前端生态一、概念的理解1、脚手架2、组件 二、基础知识1、HTML2、css3、JavaScript一、基础语法1、javaScript的引入2、认识输出语句3、学会处理报错 二、变量1、如何使用变量 2、变量的命名规范3、推荐的变量命名法4、变量默认值5、变量常见的错误6、变量声明提…

Prometheus 云原生 - 微服务监控报警系统 (Promethus、Grafana、Node_Exporter)部署、简单使用

目录 开始 Prometheus 介绍 基本原理 组件介绍 下文部署组件的工作方式 Prometheus 生态安装&#xff08;Mac&#xff09; 安装 prometheus 安装 grafana 安装 node_exporter Prometheus 生态安装&#xff08;Docker&#xff09; 安装 prometheus 安装 Grafana 安装…

人工智能算法工程师(中级)课程14-神经网络的优化与设计之拟合问题及优化与代码详解

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程14-神经网络的优化与设计之拟合问题及优化与代码详解。在机器学习和深度学习领域&#xff0c;模型的训练目标是找到一组参数&#xff0c;使得模型能够从训练数据中学习到有用的模式&am…

设计模式总结(设计模式的原则及分类)

1.什么是设计模式&#xff1f; 设计模式(Design pattern)代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结…

【ACM 独立出版,高录用EI稳检索】2024年大数据与数字化管理国际学术会议 (ICBDDM 2024,8月16-18)

2024年大数据与数字化管理国际学术会议 (ICBDDM 2024)&#xff0c;将于2024年8月16-18日在中国上海召开。 “大数据与数字化管理”作为会议主题&#xff0c;旨在聚焦这一跨学科领域中最新的理论研究、技术进展、实践案例和未来趋势。本主题探讨的研究方向涵盖了大数据的收集、…

使用uni-app和Golang开发影音类小程序

在数字化时代&#xff0c;影音内容已成为人们日常生活中不可或缺的一部分。个人开发者如何快速构建一个功能丰富、性能优越的影音类小程序&#xff1f;本文将介绍如何使用uni-app前端框架和Golang后端语言来实现这一目标。 项目概述 本项目旨在开发一个个人影音类小程序&#…

最新Qt6的下载与成功安装详细介绍

引言 Qt6 是一款强大的跨平台应用程序开发框架&#xff0c;支持多种编程语言&#xff0c;最常用的是C。Qt6带来了许多改进和新功能&#xff0c;包括对C17的支持、增强的QML和UI技术、新的图形架构&#xff0c;以及构建系统方面的革新。本文将指导你如何在Windows平台上下载和安…

Webpack看这篇就够了

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

PostgreSQL安装/卸载(CentOS、Windows)

说明&#xff1a;PostgreSQL与MySQL一样&#xff0c;是一款开源免费的数据库技术&#xff0c;官方口号&#xff1a;The World’s Most Advanced Open Source Relational Database.&#xff08;世界上最先进的开源关系数据库&#xff09;&#xff0c;本文介绍如何在Windows、Cen…