洞察数据之美:用可视化探索销售与温度的关系

目录

  • 数据可视化
  • 1.气温数据可视化
    • 图片展示
    • 将最高和最低气温合并绘制折线图:
      • 将最高和最低气温合并绘制散点图:
  • 2.销售数据可视化
    • 几种常见的销售数据可视化方法及其适用场景:
    • 图片展示
      • 通过热力图和堆叠柱状图的直观展示,可以得出以下结论:
  • 总结

数据可视化

在这里插入图片描述

是通过图形展示数据的一种方式,能够帮助我们快速理解数据的内在规律和趋势。整个数据可视化流程可以分为以下几个步骤:

获取数据:数据可能来自不同的来源,比如文件(CSV、Excel)、数据库、API 等。数据通常会存储为结构化或非结构化的形式。

数据清洗:实际数据通常会有缺失值、不一致的格式等问题。在可视化之前,我们需要清理数据,处理缺失值、异常值,确保数据质量。

选择合适的图表类型:根据数据类型和分析目的,选择适合的数据可视化图表。常见的图表类型有折线图、柱状图、散点图、热力图等。

绘制图表:使用编程语言和数据可视化工具来生成图表。在 Python 中,常用的可视化工具有 Matplotlib、Seaborn 等。

解释结果:通过图表直观地展示数据的趋势、分布或关系,从而得出结论并做出决策。


1.气温数据可视化

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams['font.family' ] = 'Arial Unicode MS'

np.random.seed(0)
dates = pd.date_range(start='2024-03-01',periods=31,freq='D')
temperature1 = (31,30,31,32,35,35,36,35,31,33,30,25,29,25,30,34,36,38,32,34,31,35,35,31,35,36,31,32,36,35,29,)
plt.figure(figsize=(16, 6))
temperature2 = (20,25,22,26,19,19,29,19,19,19,15,19,21,19,19,21,26,27,19,19,30,28,29,19,19,21,34,23,19,19,20)

plt.figure(figsize=(16,6))
plt.plot(dates,temperature1,label='气温',color='blue')
plt.xlabel('日期')
plt.ylabel('气温(摄氏度)')
plt.title(' 3月气温走势(最高)')
plt.legend()

plt.figure(figsize=(16,6))
plt.plot(dates,temperature2,label='气温',color='blue')
plt.xlabel('日期')
plt.ylabel('气温(摄氏度)')
plt.title(' 3月气温走势(最低)')
plt.legend()


plt.figure(figsize=(16, 6))
plt.scatter(dates,temperature1,label='气温',color='red',marker='o',s=6)
plt.xlabel('日期' )
plt.ylabel('气温 (摄氏度)')
plt.title( ' 3月最高气温走势 (散点)')
plt.legend()


plt.figure(figsize=(16,6))
plt.scatter(dates,temperature2,label='气温',color='red',marker='o',s=6)
plt.xlabel('日期')
plt.ylabel('气温(摄氏度)')
plt.title(' 3月最低气温走势(散点)')
plt.legend()

图片展示

在这里插入图片描述
在这里插入图片描述
通过 绘制了两组温度数据的折线图和散点图,分别对应 3 月份的每日最高和最低气温。代码逻辑看起来非常清晰,只是目前你为两组数据分别绘制了两张图。如果你想将最高和最低气温的变化趋势显示在同一张图上,可以通过以下方式修改代码:

将最高和最低气温合并绘制折线图:

plt.figure(figsize=(16, 6))

# 绘制最高气温
plt.plot(dates, temperature1, label='最高气温', color='blue')

# 绘制最低气温
plt.plot(dates, temperature2, label='最低气温', color='orange')

# 添加图例、标题和轴标签
plt.xlabel('日期')
plt.ylabel('气温(摄氏度)')
plt.title(' 3月气温走势(最高与最低)')
plt.legend()

plt.show()

将最高和最低气温合并绘制散点图:

plt.figure(figsize=(16, 6))

# 绘制最高气温的散点
plt.scatter(dates, temperature1, label='最高气温', color='red', marker='o', s=6)

# 绘制最低气温的散点
plt.scatter(dates, temperature2, label='最低气温', color='green', marker='o', s=6)

# 添加图例、标题和轴标签
plt.xlabel('日期')
plt.ylabel('气温(摄氏度)')
plt.title(' 3月气温走势(最高与最低散点)')
plt.legend()

plt.show()

在这里插入图片描述

通过这种方式,你可以在同一张图上对比最高和最低气温的变化情况,更直观地看到它们之间的差异。


2.销售数据可视化

销售数据可视化可以帮助你更直观地了解销售趋势、客户偏好以及其他关键业务指标。

几种常见的销售数据可视化方法及其适用场景:

  1. 折线图(Line Chart)

    • 用途:展示销售额随时间的变化趋势,比如每日、每月或每季度的销售趋势。
    • 适用场景:分析销售高峰期、淡季以及销售趋势的变化。
    # 示例:每日销售额折线图
    dates = pd.date_range(start='2024-01-01', periods=30, freq='D')
    sales = np.random.randint(100, 500, size=30)
    
    plt.figure(figsize=(12, 6))
    plt.plot(dates, sales, label='销售额', color='blue')
    plt.xlabel('日期')
    plt.ylabel('销售额')
    plt.title('每日销售额走势')
    plt.legend()
    plt.show()
    
  2. 柱状图(Bar Chart)

    • 用途:展示不同时间段或类别的销售量。特别适合展示类别间的比较,如产品、区域或销售员的业绩。
    • 适用场景:分析不同产品或区域的销售表现。
    # 示例:按产品类别的销售额柱状图
    categories = ['产品A', '产品B', '产品C', '产品D']
    sales_by_category = [1500, 2000, 1800, 1200]
    
    plt.figure(figsize=(10, 6))
    plt.bar(categories, sales_by_category, color='green')
    plt.xlabel('产品类别')
    plt.ylabel('销售额')
    plt.title('按产品类别的销售额')
    plt.show()
    
  3. 堆叠柱状图(Stacked Bar Chart)

    • 用途:展示不同类别的销售额占比,比如每个季度内各产品的销售额对比。
    • 适用场景:展示多个产品或区域的销售占比。
    # 示例:季度销售额堆叠柱状图
    quarters = ['Q1', 'Q2', 'Q3', 'Q4']
    product_A = [500, 700, 900, 800]
    product_B = [300, 500, 600, 700]
    
    plt.figure(figsize=(10, 6))
    plt.bar(quarters, product_A, label='产品A', color='blue')
    plt.bar(quarters, product_B, bottom=product_A, label='产品B', color='orange')
    plt.xlabel('季度')
    plt.ylabel('销售额')
    plt.title('季度销售额(堆叠柱状图)')
    plt.legend()
    plt.show()
    
  4. 饼图(Pie Chart)

    • 用途:展示某一时间段内不同类别或产品的销售额占比。
    • 适用场景:分析不同产品、地区或客户群体的销售占比。
    # 示例:不同产品销售占比饼图
    product_sales = [3000, 2500, 1800, 1200]
    product_labels = ['产品A', '产品B', '产品C', '产品D']
    
    plt.figure(figsize=(8, 8))
    plt.pie(product_sales, labels=product_labels, autopct='%1.1f%%', colors=['blue', 'green', 'red', 'orange'])
    plt.title('产品销售额占比')
    plt.show()
    
  5. 热力图(Heatmap)

    • 用途:展示不同时间段和产品的销售表现。颜色越深表示销售额越高。
    • 适用场景:分析销售数据的季节性变化或区域销售情况。
    # 示例:按月份和产品的销售额热力图
    sales_data = np.random.randint(100, 1000, size=(4, 5))  # 4个月,5种产品
    sns.heatmap(sales_data, annot=True, cmap='Blues', xticklabels=['产品A', '产品B', '产品C', '产品D', '产品E'], yticklabels=['1月', '2月', '3月', '4月'])
    plt.title('每月每个产品的销售额热力图')
    plt.show()
    
  6. 散点图(Scatter Plot)

    • 用途:展示销售额与其他变量(如客户、价格、库存)之间的关系。
    • 适用场景:分析价格与销售额的相关性或其他变量的影响。
    # 示例:价格与销售额的散点图
    prices = np.random.randint(50, 500, size=30)
    sales = np.random.randint(100, 1000, size=30)
    
    plt.figure(figsize=(10, 6))
    plt.scatter(prices, sales, color='purple')
    plt.xlabel('价格')
    plt.ylabel('销售额')
    plt.title('价格与销售额的关系')
    plt.show()
    

这些可视化方法可以帮助你深入分析销售数据的变化和模式,你可以根据实际的数据类型选择合适的图表类型。如果有具体的数据或场景,我可以帮助你设计更适合的可视化图表。


import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.family'] = 'Arial Unicode MS'

# 随机生成数据
np.random.seed(0)
years = ['2019', '2020', '2021', '2022', '2023']
categories = ['PA', 'PB', 'PC', 'PD', 'PE']
data = np.random.randint(10, 100, size=(len(years), len(categories)))

df = pd.DataFrame(data, columns=categories, index=years)

# 1. 绘制热力图
plt.figure(figsize=(10, 6))
sns.heatmap(df, cmap='YlGnBu', annot=True, fmt='d', cbar=True)
plt.xlabel('产品种类')
plt.ylabel('年份')
plt.title(' 热力图')

# 2. 绘制堆叠柱状图
plt.figure(figsize=(10, 6))
bottom = np.zeros(len(years))
for category in categories:
    plt.bar(years, df[category], label=category, bottom=bottom)
    bottom += df[category]

plt.xlabel('年份')
plt.ylabel('数量')
plt.title(' 产品数量堆叠柱状图')
plt.legend(title='产品种类')
plt.show()

图片展示

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

通过热力图和堆叠柱状图的直观展示,可以得出以下结论:

整体趋势:

从热力图中可以看到,PA 和 PC 类产品在大部分年份中保持较高的销量,而 PB 类产品的销量相对较低。这可能意味着公司在 PA 和 PC 产品上具备较强的市场竞争力,而 PB 产品的市场表现有待提升。
堆叠柱状图展示了各年产品销售总量的变化。例如,2021 年的总销售量较低,可能由于市场因素或产品策略调整所致,而 2023 年的销售量明显增长,显示出产品策略的优化或市场需求的变化。
产品表现:

通过对比不同年份的销售数据,PA 和 PE 类产品在不同年份的波动较大,说明这两类产品的销量受到外部因素的影响较大。而 PC 类产品表现相对稳定,可能为公司提供了持续的收入来源。

总结

哇哦!库一定要提前下载哦!可以用国内的镜像源来下载库呢!加油,慢慢学,你一定可以的!

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

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

相关文章

CAS简介

#1024程序员节|征文# CAS是什么? CAS(Compare And Swap),即比较与交换,是一种乐观锁的实现方式,用于在不使用锁的情况下实现多线程之间的变量同步。 CAS操作包含三个操作数:内存位…

【Nginx】win10 安装Nginx

1.下载 nginx: download 2.安装 解压即可 3.启动 可以自己修改端口,conf/nginx.conf 确保端口不被占用cmd启动(不要双击nginx.exe启动,至于原因我粘贴一下) start nginx.exe 可以看到是后台运行,还不错 访问&…

易基因:Nat Commun:ATAC-seq等揭示恒河猴大脑高分辨率解剖区域的转录组和开放染色质图谱

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 恒河猴是神经科学研究中常用的模型动物,其大脑结构和功能与人类大脑相似。大脑中复杂的遗传网络是灵长类动物行为、认知和情感的基础,一直是神经科学的核心。大脑…

全面了解MindSporeLite轻量化推理工具(概念版)

一、参考资料 技术干货|极速、极智、极简的昇思MindSpore Lite:助力华为Watch更加智能 二、相关概念 MCU MCU的全称是Microcontroller Unit,中文可以称为微控制器或者单片机。MCU既可用于汽车电子、工业控制等领域,也可应用于…

Docker入门之构建

Docker构建概述 Docker Build 实现了客户端-服务器架构,其中: 客户端:Buildx 是用于运行和管理构建的客户端和用户界面。服务器:BuildKit 是处理构建执行的服务器或构建器。 当您调用构建时,Buildx 客户端会向 Bui…

【纯血鸿蒙】安装hdc工具

这里我先写Mac版的,Windows的在下面 首先要知道你的SDK安装在哪里了,不知道的话,可以打开DevEco Studio,打开设置页面里的HarmonyOS SDK,这个我们之前配置环境变量的时候用过。 其实主要是用到这里toolchains下的hdc命令。 所以我们需要配置环境变量。 1、打开Mac下的…

RabbitMQ是一个开源的消息代理和队列服务器

RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)协议实现,同时也支持其他消息协议如STOMP、MQTT等。作为一个可靠的消息传递服务,RabbitMQ在分…

Nginx+Tomcat 动静分离

1. NginxTomcat 环境 Nginx 处理静态资源的优势同样可以应用在 Tomcat 环境中 。从实现方法上来说,NginxTomcat 环境的搭建思路与前面完成的 NginxApache 环境是完全相同的,只需要将 Nginx 与 Tomcat 的站点文档目录配置到同一目录下,利用 N…

Python 打包成 EXE 的方法详解

#1024程序员节|征文# 日常开发中,python由于其便捷性成为了很多人的首选语言,但是python的环境配置也是有点麻烦的,那么我们如何让其变得更加友好呢?没错,就是打包成exe可执行文件。 一、PyInstaller 简介…

在使用 RabbitMQ 作为消息代理时,多个 Celery 实例(或应用)可以共享同一个 RabbitMQ 实例

在使用 RabbitMQ 作为消息代理时,多个 Celery 实例(或应用)可以共享同一个 RabbitMQ 实例。这样做可以简化基础设施管理,同时允许不同的 Celery 应用之间进行消息传递和协作。下面是如何配置多个 Celery 实例以使用同一个 RabbitM…

鸿蒙到底是不是纯血?到底能不能走向世界?

关注卢松松,会经常给你分享一些我的经验和观点。 2016年5月鸿蒙系统开始立项。 2018年美国开始经济战争,其中一项就是制裁华为,不让华为用安卓。 2019年8月9日华为正式发布鸿蒙系统。问题就出在这里,大家可以仔细看。 安卓一…

Java之bean操作【复制】

#1024程序员节 | 征文# 文章目录 一、深拷贝二、不为空拷贝三、List转换 1024 祝各位大佬 节日快乐&#xff01; 在Java项目开发中&#xff0c;对Java对象操作如bean复制等&#xff0c;可使用 一、深拷贝 private static final Map<String, BeanCopier> BEAN_COPIER_M…

【忍无可忍,无需再忍】永久解决xshell or xftp 更新问题

1 背景介绍 提示“要继续使用此程序,您必须应用最新的更新或使用新版本”&#xff0c;笔者版本是xshell 6 距离一段时间不使用&#xff0c;或者遇到更新场景&#xff0c;总是会弹出这个框&#xff0c;实在是忍无可忍&#xff0c;无需再忍。 2 思路介绍 笔者上一篇关于如何解…

No.21 笔记 | WEB安全 - 任意文件绕过详解 part 3

&#xff08;一&#xff09;空格绕过 原理 Windows系统将文件名中的空格视为空&#xff0c;但程序检测代码无法自动删除空格&#xff0c;使攻击者可借此绕过黑名单限制。基于黑名单验证的代码分析 代码未对上传文件的文件名进行去空格处理&#xff0c;存在安全隐患。相关代码逻…

24.redis高性能

Redis的单线程和高性能 Redis是单线程吗&#xff1f; Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的&#xff0c;这也是 Redis 对外 提供键值存储服务的主要流程。 Redis 的多线程部分&#xff0c;比如持久化、异步删除、集群数据同步等&#xff…

C# 委托简述

1.委托 1.1什么是委托 委托委托 官网解释: 委托是安全封装方法的类型&#xff0c;类似于 C 和 C 中的函数指针。 与 C 函数指针不同的是&#xff0c;委托是面向对象的、类型安全的和可靠的。 委托的类型由委托的名称确定。 个人理解:委托就是一个方法的模板。它可以接收…

关于bp抓不到本地包

关于bp抓不到本地包 关于bp抓不到本地包 关于bp抓不到本地包 pikachu练习时&#xff0c;发现用bp抓本地&#xff08;127.0.0.1&#xff09;数据包时&#xff0c;竟然直接放行访问。 是因为系统默认127.0.0.1无法使用代理&#xff0c;因此bp才抓不到本地数据包&#xff0c;需要…

Python入门:Python如何强制终止程序(如何强制终止多线程程序)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 优雅的退出📝 强制的终止📝 应用场景对比🚀 优雅的退出🚀 强制的终止⚓️ 相关链接 ⚓️📖 介绍 📖 在开发过程中,有时候需要在满足一些条件的情况下让程序强制终止运行?今天我们将了解一下 Py…

Apifox「定时任务」进阶指南:监控、爬虫的自动化之旅

定时任务能干啥&#xff1f;&#xff1f;&#xff1f; 它能做的自动化操作实在太多了。先给大家列几个常见的&#xff0c;比如&#xff1a; 社交媒体动态监控&#xff1a;定时跟踪特定用户的动态&#xff0c;监控热门话题和趋势 数据采集与分析&#xff1a;定时爬取网站的文章…

机器学习学习笔记-20241018

继续跟着小土堆去学习机器学习 文章目录 Flatten1. Flatten 的作用2. 何时使用 Flatten3. PyTorch 中的 Flatten Sequentia优化器模型的保存与加载模型的完整训练 Flatten 在神经网络中&#xff0c;Flatten 操作是将高维的输入&#xff08;如二维图像或三维特征图&#xff09…