Python可视化 | 使用matplotlib绘制面积图示例
面积图是数据可视化中的一个有效工具,用于说明时间上的关系和趋势。它们提供了一种全面的、视觉上迷人的方法,通过熟练地将折线图的可读性与填充区域的吸引力相结合来呈现数值数据。
在本文中,我们将学习更多关于在Python中创建面积折线图的知识。面积图为数据可视化提供了一个有价值的工具,提供了一种清晰而引人入胜的方式来传达随着时间的推移的趋势和关系。
什么是面积图?
面积线图,也称为面积图或堆积面积图,是一种数据可视化技术,用于表示随时间或跨类别的数据。它是基本折线图的扩展,当您想要显示整体的组成、沿着单个组件以及它们如何随时间或跨类别变化时,它特别有用。在本文中,我们将探索如何使用matplotlib库在Python中创建面积线图,并解释它们在可视化数据中的重要性。
以下是面积线图的关键组成部分和特征。
X轴:水平轴代表自变量,通常是时间或类别。它是一种连续或分类量表,为数据点提供背景。
Y轴:垂直轴表示因变量,通常是一个数值,用于度量您正在可视化的内容的数量或大小。
线:面积线图中的各条线表示不同的类别、组或构件。每一行从基线(通常是X轴)开始,向上显示该类别或组件在特定时间点或沿着类别轴的值。
区域填充:线条和基线之间的区域用颜色填充,使其在视觉上与众不同。该区域的颜色通常用于表示它所代表的类别或组件。
堆叠:在堆叠面积图中,每条线都堆叠在前一条线的顶部。这种叠加说明了总体如何随时间或跨类别变化,以及每个类别对整体的贡献。
创建面积图
首先,让我们使用Python制作一个基本的面积线图。为了创建图并显示各种类别如何随时间变化,我们将使用Matplotlib。
import pandas as pd
import matplotlib.pyplot as plt# Sample data
df = pd.DataFrame({'x': list(range(1, 11)),'y': [1, 3, 2, 4, 5, 7, 6, 8, 9, 10]
})# Create the area line plot
plt.fill_between(df['x'], df['y'], color='blue', alpha=0.2)
plt.plot(df['x'], df['y'], color='red', alpha=0.5, linewidth=0.9)plt.title("Area Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
带标记和标签的面积图
添加更多功能,使其更具吸引力
- 导入必要的库:pandas用于数据操作,matplotlib.pyplot用于数据可视化。
- 准备示例数据:创建一个DataFrame,其中’x’和’y’列包含数值。
- 生成面积线图:使用plt.fill_between()创建半透明的蓝色面积线图,使用plt.plot()创建微弱的红色线。
- 使用标记和标签增强图:使用plt.scatter()在数据点处添加红色圆形标记(s=30)。使用plt.text()在每个数据点上方添加黑色标签,将其水平居中(ha =‘center’)并在底部垂直对齐(va =‘bottom’)。自定义轴、添加标题并显示绘图。
import pandas as pd
import matplotlib.pyplot as plt# Sample data
df = pd.DataFrame({'x': list(range(1, 11)),'y': [1, 3, 2, 4, 5, 7, 6, 8, 9, 10]
})# Create the area line plot
plt.fill_between(df['x'], df['y'], color='blue', alpha=0.5)
plt.plot(df['x'], df['y'], color='red', alpha=0.1)# Add red markers at data points
plt.scatter(df['x'], df['y'], color='red', s=30)# Add labels above data points
for i, row in df.iterrows():plt.text(row['x'], row['y'], str(row['y']), ha='center', va='bottom', color='black', size=10)plt.title("Area Line Plot with Markers and Labels")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
堆叠面积图
- 导入必要的库:pandas用于数据操作,matplotlib.pyplot用于数据可视化。
- 准备示例数据:创建一个DataFrame,其中包含“x”、“Category A”、“Category B”和“Category C”列,列中包含数值。
- 定义自定义颜色:定义要用于每个类别的颜色列表(“黄色”、“紫色”、“粉红色”)。
- 生成堆叠面积线图:使用plt.stackplot()创建具有定义的颜色和透明度的堆叠面积线图。此外,使用不同的颜色、线宽和透明度为每个类别绘制单独的线条。添加标签、自定义轴并显示绘图。
import pandas as pd
import matplotlib.pyplot as plt# Sample data
df = pd.DataFrame({'x': list(range(1, 11)),'Category A': [1, 3, 2, 4, 5, 7, 6, 8, 9, 10],'Category B': [2, 4, 3, 5, 6, 8, 7, 9, 10, 11],'Category C': [3, 5, 4, 6, 7, 9, 8, 10, 11, 12]
})# Define custom colors for each category
colors = ['yellow', 'purple', 'pink']# Create the stacked area line plot with custom colors
plt.stackplot(df['x'], df['Category A'], df['Category B'], df['Category C'], colors=colors, alpha=0.7)# Plot lines for each category with custom colors
plt.plot(df['x'], df['Category A'], color='blue', alpha=0.5, linewidth=0.9)
plt.plot(df['x'], df['Category B'], color='green', alpha=0.5, linewidth=0.9)
plt.plot(df['x'], df['Category C'], color='red', alpha=0.5, linewidth=0.9)plt.title("Stacked Area Line Plot with Custom Colors")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()
plt.show()
线间填充
- 导入必要的库:matplotlib.pyplot用于数据可视化,numpy用于数值运算。
- 准备样本数据:使用np.linspace生成x轴值,并使用sin和cos函数计算相应的y轴值。
- 创建绘图元素:使用plt.subplots()创建一个图形和轴,并使用ax.plot()绘制两条具有不同颜色和标签的线。
- 线间填充:使用ax.fill_between()以特定颜色和透明度填充线条之间的区域,并应用条件和插值。添加标签、自定义轴并显示绘图。
import matplotlib.pyplot as plt
import numpy as np# Sample data for demonstration
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# Create a figure and axis
fig, ax = plt.subplots()# Plot the two lines
ax.plot(x, y1, label='Line 1', color='blue')
ax.plot(x, y2, label='Line 2', color='green')# Fill the area between the lines
ax.fill_between(x, y1, y2, where=(y1 > y2), interpolate=True, alpha=0.5, color='yellow', label='Fill Area')# Customize the plot
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_title('Filling Between Lines')
ax.legend()# Display the plot
plt.show()
总结
总而言之,面积图可有效显示数据随时间或跨类别的趋势、比较和部分与整体的关系。它们提供了一种视觉上引人注目的方式来理解不同的组件如何对整体做出贡献,以及这些贡献如何在选定的轴(时间或类别)上发生变化。
相关文章:
Python可视化 | 使用matplotlib绘制面积图示例
面积图是数据可视化中的一个有效工具,用于说明时间上的关系和趋势。它们提供了一种全面的、视觉上迷人的方法,通过熟练地将折线图的可读性与填充区域的吸引力相结合来呈现数值数据。 在本文中,我们将学习更多关于在Python中创建面积折线图的…...
【环境搭建】2.阿里云ECS服务器 安装MySQL
在阿里云的 Alibaba Cloud Linux 3.2104 LTS 64位系统上安装 MySQL 8,可以按照以下步骤进行: 1.更新系统软件包: 首先,更新系统软件包以确保所有软件包都是最新的: sudo yum update -y2.下载 MySQL 8 官方 Yum 仓库…...
Python Flask 入门开发
Python基础学习: Pyhton 语法基础Python 变量Python控制流Python 函数与类Python Exception处理Python 文件操作Python 日期与时间Python Socket的使用Python 模块Python 魔法方法与属性 Flask基础学习: Python中如何选择Web开发框架?Pyth…...
PostgreSQL查看当前锁信息
PostgreSQL查看当前锁信息 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777查看当前锁信息的sql SELECT pg_s…...
毫米波雷达深度学习技术-1.6目标识别2
1.6.4 自动编码器和变体自动编码器 自编码器包括一个编码器神经网络,随后是一个解码器神经网络,其目的是在输出处重建输入数据。自动编码器的设计在网络中施加了一个瓶颈,它鼓励原始输入的压缩表示。通常,自编码器旨在利用数据中的…...
MineAdmin 前端打包后,访问速度慢原因及优化
前言:打包mineadmin-vue前端后,访问速度很慢,打开控制台,发现有一个index-xxx.js文件达7M,加载时间太长; 优化: 一:使用文件压缩(gzip压缩) 1、安装compre…...
使用Obfuscar 混淆WPF(Net6)程序
Obfuscar 是.Net 程序集的基本混淆器,它使用大量的重载将.Net程序集中的元数据(方法,属性、事件、字段、类型和命名空间的名称)重命名为最小集。详细使用方式参见:Obfuscar 在NetFramework框架进行的WPF程序的混淆比较…...
高中数学:数列-基础概念
一、什么是数列? 一般地,我们把按照确定的顺序排列的一列数称为数列,数列中的每一个数叫做这个数列的项,数列的第一项称为首项。 项数有限个的数列叫做有穷数列,项数无限个的数列叫做无穷数列。 二、一般形式 数列和…...
linux中dd命令以及如何测试读写速度
dd命令详解 dd命令是一个在Unix和类Unix系统中非常常用的命令行工具,它主要用于复制文件和转换文件数据。下面我会详细介绍一些dd命令的常见用法和功能: 基本语法 dd命令的基本语法如下: bash Copy Code dd [option]...主要选项和参数 if…...
centos官方yum源不可用 解决方案(随手记)
昨天用yum安装软件的时候,就报错了 [rootop01 ~]# yum install -y net-tools CentOS Stream 8 - AppStream 73 B/s | 38 B 00:00 Error: Failed to download metadata for repo appstream: Cannot prepare internal mirrorlis…...
langchian_aws模块学习
利用langchain_aws模块实现集成bedrock调用模型,测试源码 from langchain_aws.chat_models import ChatBedrock import jsondef invoke_with_text(model_id, message):llm ChatBedrock(model_idmodel_id, region_name"us-east-1")res llm.invoke(messa…...
归并排序-成绩输出-c++
注:摘自hetaobc-L13-4 【任务目标】 按学号从小到大依次输入n个人的成绩,按成绩从大到小输出每个人的学号,成绩相同时学号小的优先输出。 【输入】 输入第一行为一个整数,n,表示人数。(1 ≤ n ≤ 100000…...
✔️Vue基础+
✔️Vue基础 文章目录 ✔️Vue基础computed methods watchcomputed计算属性methods计算属性computed计算属性 VS methods方法计算属性的完整写法 watch侦听器(监视器)watch侦听器 Vue生命周期Vue生命周期钩子 工程化开发和脚手架脚手架Vue CLI 项目目录介…...
基于VS2022编译GDAL
下载GDAL源码;下载GDAL编译需要依赖的必须代码,proj,tiff,geotiff三个源码,proj需要依赖sqlite;使用cmake编译proj,tiff,geotiff;proj有版本号要求;使用cmake…...
C语言之字符函数总结(全部!),一篇记住所有的字符函数
前言 还在担心关于字符的库函数记不住吗?不用担心,这篇文章将为你全面整理所有的字符函数的用法。不用记忆,一次看完,随查随用。用多了自然就记住了 字符分类函数和字符转换函数 C语言中有一系列的函数是专门做字符分类和字符转换…...
vite常识性报错解决方案
1.导入路径不能以“.ts”扩展名结束。考虑改为导入“xxx.js” 原因:当你尝试从一个以 .ts 结尾的路径导入文件时,ESLint 可能会报告这个错误,因为它期望导入的是 JavaScript 文件(.js 或 .jsx)而不是 TypeScript 文件&…...
2024.06.08【读书笔记】丨生物信息学与功能基因组学(第十二章 全基因组和系统发育树 第四部分)【AI测试版】
读书笔记:《生物信息学与功能基因组学》第十二章 - 第四部分 目录 基因组测序的生物信息学工具 1.1 常用生物信息学软件介绍1.2 基因组数据的管理和分析 基因组序列的比较分析 2.1 基因组之间的相似性与差异性2.2 比较基因组学的应用 基因组学在医学和健康科学中…...
IO进程线程(八)线程
文章目录 一、线程(LWP)概念二、线程相关函数(一)创建 pthread_create1. 定义2. 使用(不传参)3. 使用(单个参数)4. 使用(多个参数)5. 多线程执行的顺序6. 多线程内存空间 ࿰…...
Linux基础指令网络管理003
本章主要讲述如何进行网络诊断。 操作系统: CentOS Stream 9 操作步骤: 操作指令 ping: 测试网络连接的连通性和延迟。 [rootlocalhost ~]# ping 192.168.80.111 PING 192.168.80.111 (192.168.80.111) 56(84) 比特的数据。 64 比特&a…...
在Android中使用 MQTT 服务实现消息通信
1.摘要 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的、基于发布/订阅(Publish/Subscribe)模式的通信协议,最初由 IBM 在1999年开发。它设计用于在低带宽、不稳定的网络环境下…...
qsort函数
学习c语言的过程中少不了的就是排序,例如冒泡排序(不清楚的同学可以翻找一下之前的文章), 我们这里将冒泡排序作为一个自定义函数来呈现一下 #include<stdio.h>void bubble_sort(int arr[], int len) {for (int i 0; i &…...
你可以直接和数据库对话了!DB-GPT 用LLM定义数据库下一代交互方式,数据库领域的GPT、开启数据3.0 时代
✨点击这里✨:🚀原文链接:(更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号!) 你可以直接和数据库对话了!DB-GPT 用LLM定义数据库下一代交互方式,数据库领…...
数据结构笔记2 栈和队列
为什么在循环队列中,判断队满的条件是(Q.rear1)模maxqsize? 取模运算(%)在循环队列中起到关键作用,主要是因为它能确保索引值在数组的有效范围内循环。具体来说,取模运算有以下几个重要作用&am…...
Python | 刷题笔记
继承 class Father:__secret"you are your own kid"stroy"iam a handsome boy..."def tellstory(self):print("我的故事:",self.stroy)def __tellstory(self):print("我的秘密:",Father.__secret) class Son(Father):def tell(self…...
软件三班20240605
文章目录 1.创建工程和模块2.添加 web支持3.创建前端代码4.添加servlet 依赖5. 代码6.案例2 1.创建工程和模块 2.添加 web支持 方法1 方法2 3.创建前端代码 4.添加servlet 依赖 5. 代码 <!DOCTYPE html> <html lang"en"> <head><meta c…...
http和https数据传输与协议区分
目录 1. 数据传输安全性2. 端口号3. URL 前缀4. SSL/TLS 证书5. 性能6. SEO 和用户信任7. 应用场景总结 HTTP(HyperText Transfer Protocol)和 HTTPS(HyperText Transfer Protocol Secure)是用于在客户端(如浏览器&…...
天才程序员周弈帆 | Stable Diffusion 解读(一):回顾早期工作
本文来源公众号“天才程序员周弈帆”,仅用于学术分享,侵权删,干货满满。 原文链接:Stable Diffusion 解读(一):回顾早期工作 在2022年的这波AI绘画浪潮中,Stable Diffusion无疑是最…...
软件架构初探
MVC架构软件层次结构是面向实体的,他最底层是实体类,实体类中封装了对象的抽象数据类型(数据结构和对数据结构的基本操作)。然后向上一层数据处理层提供接口,数据处理层利用模型层提供的对象和基本操作进一步进行算法的…...
Python01 -分解整包数据到各个变量操作和生成器
Python 的星号表达式可以用来解决这个问题。比如,你在学习一门课程,在学期末的时候,你想统计下家庭作业的平均成绩,但是排除掉第一个和最后一个分数。如果只有四个分数,你可能就直接去简单的手动赋值,但如果…...
flutter image_picker 执行拍照的图片怎么保存到本地
在 Flutter 中,使用 image_picker 插件拍照的图片默认会被保存到设备的临时目录中。这个临时目录的具体位置取决于设备的操作系统。在 iOS 上,它通常是应用的沙盒目录;在 Android 上,它通常是应用的缓存目录。 这些图片不会被自动…...
济南免费做网站/seo网站推广收费
摘要 在前面的文章中,我们讲解了很多基础的内容,主要包括安装配置、Form认证等。可能这些对很多朋友来说,是太轻易了。那么,从下一篇文章开始,就让我们进入SharePoint的高级课题之旅吧。 本篇文章将介绍如何编写一个…...
网站空间商盗取数据/网站互联网推广
上一篇刚刚完成了nagios的自动安装,这篇继续吧,想到前些天手动配置kickstart服务器过程比较繁琐,思路也不够清晰,还是把安装配置过程写进脚本非常方便,感觉是一劳永逸,降低后续工作的劳动量,而且…...
wordpress建个人网站/成都专门做网站的公司
1.验证外星语词典 题目: 某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的…...
做外汇消息面的网站/seowhy培训
1.插件介绍 Laconic POM插件。 折叠 Maven 的样板文件。 2.安装方式 第一种方式,是在IDEA上搜索插件进行安装,会适配当前IDEA的版本。 第二种安装方式是使用离线插件进行安装。 插件下载地址:https://plugins.jetbrains.com/plugin/1058…...
wordpress网站描述插件/广州网络广告推广公司
图像滤波前言1.制作噪声生成椒盐噪声生成高斯噪声2.滤波均值滤波框滤波高斯滤波中值滤波总结前言 很多时候我们能拿到的图片并不是十分干净,有时会有一些噪声,这时我们就应该采用滤波的方式对他进行处理,本文将在一张干净的图片上生成噪声并…...
天津网站建设哪里好/百度云服务器
https://www.cnblogs.com/wolipengbo/archive/2013/10/23/3383667.html转载于:https://www.cnblogs.com/norm/p/7856179.html...