matplotlib绘图

🐳 我正在和鲸社区参加“商业数据分析训练营活动” https://www.heywhale.com/home/competition/6487de6649463ee38dbaf58b ,以下是我的学习笔记:

学习主题:matplotlib绘图

日期:2023.9.13

关键概念/知识点:

  • 创建图形和子图
  • 自定义图形样式
  • 添加标题、轴标签和图例
  • 直方图
  • 散点图
  • 气泡图
  • 柱形图

掌握的新函数/方法:

  • plt.figure()
  • fig.add_subplot()
  • ax.plot(x,y,linestyle = ‘–’, color = ‘red’, marker = ‘o’)
  • plt.title(‘Title’)
  • plt.xlabel(‘X-label’)
  • plt.ylabel(‘Y-label’)
  • ax.legend([‘Line 1’, ‘Line 2’])
  • ax.hist(x, bins)
  • ax.scatter(x, y)
  • ax.scatter(x, y, s = df[‘Income’])
  • ax.bar(x, y)
  • ax.plot(x, y)

代码举例

创建图形和子图:
matplotlib中最基本的绘图单位是图形(Figure)和子图(Axes)。图形可以看作是一个画布,而子图则是画布上的绘图区域。

# 创建一个名为fig的画布,并向画布添加一个子图ax  
# add_subplot() 中传递的参数 1, 1, 1 表示该图形对象应包含一个子图,该子图应在 1x1 的网格中排列,并且此子图是该网格中的第一个子图  
fig = plt.figure()  
ax = fig.add_subplot(1, 1, 1)  

在这里插入图片描述
自定义图形样式:

import matplotlib.pyplot as plt 
fig = plt.figure()  
ax = fig.add_subplot(1, 1, 1) 
sales = [100, 150, 120, 180, 210, 170]  
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']  
# linestyle:表示折线图中线条的样式,例如'-'表示实线,'--'表示虚线  
# color:表示线条或散点的颜色,可以使用颜色名称(如'red')或十六进制RGB值(如'#FF0000')  
# marker:表示散点图中数据点的形状,例如'o'表示圆点、's'表示正方形 
ax.plot(months, sales, linestyle = '--', color = 'red', marker = 'o')  
plt.show()

在这里插入图片描述
添加标题、轴标签:

import matplotlib.pyplot as plt 
fig = plt.figure()  
ax = fig.add_subplot(1, 1, 1) 
sales = [100, 150, 120, 180, 210, 170]  
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']  
ax.plot(months, sales, linestyle = '--', color = 'red', marker = 'o') 
# 添加标题
plt.title("某公司上半年销售额变化折线图")
# 添加x轴标签
plt.xlabel("月份")
#添加y轴标签
plt.ylabel("销售额")
plt.show()

在这里插入图片描述
员工年龄分布直方图:

# 载入pandas、matplotlib、numpy库  
import pandas as pd  
import matplotlib.pyplot as plt  
import numpy as np  
# 导入数据  
df = pd.read_excel('/home/mw/input/data_analysis8875/al3-1.xls')  
fig = plt.figure()  
ax = fig.add_subplot(1, 1, 1) # 在子图上绘制直方图
fig = plt.figure()
ax = fig.add_subplot(1,1,1)  
ax.hist(df['Age'],bins=[25,30,35,40,45])# 设置图形标题  
plt.title('某公司员工年龄分布直方图')  
# 设置x轴标签  
plt.xlabel('年龄')  
# 设置y轴标签  
plt.ylabel('人数')  # 向plt.xticks()传入参数range(25, 50, 5)表示x轴数值范围从2550,每隔5个单位显示一个数值
plt.xticks(range(25,50,5))# 调用plt.show()函数显示图形
plt.show()

在这里插入图片描述
员工年龄与销售情况散点图 :

import pandas as pd  
import matplotlib.pyplot as plt  
import numpy as np  df = pd.read_excel('/home/mw/input/data_analysis8875/al3-1.xls') # 创建一个图形对象  
fig = plt.figure()  # 向图形对象添加一个子图  
ax = fig.add_subplot(1,1,1)  # 在子图上绘制散点图  
ax.scatter(df['Age'],df['Sales'])  # 设置图形标题  
plt.title('某公司员工年龄与销售额散点图')  # 设置x轴、y轴标签  
plt.xlabel('年龄')  
plt.ylabel('销售额')  # 显示图形  
plt.show()  

在这里插入图片描述
员工年龄与销售情况气泡图 :
scatter( )函数中的s参数提供了一种便捷的方法,可以用来对点的大小进行控制,进而实现用点的大小来反映收入的大小。

# 导入数据
import pandas as pd  
import matplotlib.pyplot as plt  
import numpy as np  
df = pd.read_excel('/home/mw/input/data_analysis8875/al3-1.xls')  # 创建一个图形对象并添加子图 
fig = plt.figure()   
ax = fig.add_subplot(1,1,1)  # 在子图上绘制气泡图 
ax.scatter(df['Age'],df['Sales'],s = df['Income'])  # 设置图形标题  
plt.title('某公司员工年龄与销售额及收入气泡图')  # 设置x轴、y轴标签  
plt.xlabel('年龄')  
plt.ylabel('销售额')  # 显示图形  
plt.show()  

在这里插入图片描述
员工性别销售情况柱形图 :

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np# 使用groupby()函数按性别Gender对员工进行分组,将分组后数据命名为gender_group  
df = pd.read_excel('/home/mw/input/data_analysis8875/al3-1.xls')  
gender_group = df.groupby('Gender')  # 对分组后数据进行操作,将销售量Sales进行加总,保存为var  
var = gender_group['Sales'].sum()  fig = plt.figure()
ax = fig.add_subplot(1,1,1)# 对性别进行分组后,var中index代表性别属性,values代表销售额  
ax.bar(var.index,var.values)plt.title('某公司员工性别与销售情况柱形图')
plt.xlabel('性别')
plt.ylabel('销售额')
plt.show()

在这里插入图片描述

关键总结:

通过强大的Python语言和神奇的matplotlib库,将枯燥的商业数据变成绚丽多彩的图形,让数据跃然纸上,为企业决策提供更直观、更清晰的依据。学会运用matplotlib库为绘制折线图、柱状图、散点图等图形,利用可视化的图形去展示数据,解决例如某公司员工年龄分布、年龄与销售情况以及性别与销售情况等一系列问题。

问题/困惑:

在分组或者多条件情形下,绘制图形。

下一步计划:

通过练习掌握matplotlib库,绘制出各种多样的图形。

参考资料/相关资源链接:

Pandas文档:https://pandas.pydata.org/docs/
matplotlib文档:https://www.matplotlib.org.cn/intro/

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

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

相关文章

TikTok的生态封闭:如何应对新的商业格局

TikTok(抖音国际版)已经成为全球范围内最受欢迎的社交媒体平台之一,拥有数以亿计的活跃用户。然而,最近TikTok宣布了一项重大战略调整,即开始构建生态封闭(walled garden)模式。 这一变化将对出…

bit、bin 、mcs文件区别

FPGA里面的可执行文件都涉及到 *.bit, *.mcs, *.bin 和 *.elf。 bit文件 bit 文件一般用于JTAG在线进行调试的时候,是把bit文件是烧写到FPGA中进行在线调试。 bin文件 bin 文件是二进制文件,按顺序只包含原始字节流&#xff0c…

批量剪辑视频:AI智剪技巧全掌握

在视频剪辑的工作中,我们常常需要处理大量的视频文件。传统的剪辑方式既耗时又费力,而如今,随着人工智能技术的发展,AI智剪成为了一种省时省力的视频剪辑方法。下面,我们就来详细了解一下如何使用固乔智剪软件进行批量…

Linux下创建普通用户遇到的问题及解决办法

在Linux下只有root一个超级用户,但是可以创建多个普通用户的,具体的创建方法如下。 先切换到root用户,使用下面的命令创建用户名为user1(本文均以此用户名为例,注意后续键入指令时不要弄错了)的普通用户。 su root useradd user1 …

ARM的异常处理

概念 处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生 这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件 异常事件处理完成之后再返回到被异常打断的点继续执行程序 异常处理机制 不同的处理器对异常的处理的流程大体相似,但是不同的处理器…

linux 下 C++ 与三菱PLC 通过MC Qna3E 二进制 协议进行交互

西门子plc 有snap7库 进行交互&#xff0c;并且支持c 而且跨平台。但是三菱系列PLC并没有现成的开源项目&#xff0c;没办法只能自己拼接&#xff0c;我这里实现了MC 协议 Qna3E 帧&#xff0c;并使用二进制进行交互。 #pragma once#include <stdio.h> #include <std…

zTasker—简洁易用强大的定时热键一体自动化工具,效率倍增器

软件名称 zTasker 应用平台 PC Windows7及以上 一句简介 市面上定时类软件很多&#xff0c;但无一例外功能都很单一&#xff0c;要完成不同的任务&#xff0c;需要不同的软件 市面上的热键软件&#xff0c;要么功能少&#xff0c;要么像是AutoHotKey这样对于一般用户太专业…

分享篇:初识Canvas

目录 什么是Canvas&#xff1f; canvas的坐标 使用canvas的基本步骤​编辑 步骤&#xff1a; 1.需要一个canvas标签 代码演示&#xff08;方法1&#xff09; 代码演示&#xff08;方法2&#xff09; 2.需要获取 画笔 对象 &#xff08;获取 元素的 2D 上下文对象&#…

通过RSYNC在linux和windows间同步文件

通过RSYNC在linux和windows间同步文件 下载windows版本rsync下载后是一个zip的压缩包&#xff0c;直接解压就可使用配置windows到linux的秘钥拷贝公钥文件到linux服务器&#xff0c;实现免密配置同步命令结合windows计划任务实现定时同步文件 下载windows版本rsync 下载链接 h…

[kingbase运维之奇怪的现象]

#[kingbase运维之奇怪的现象] ##奇怪的现象 某银行数据中心应用反馈&#xff0c;业务接口日志记录了很多执行慢的SQL&#xff0c;出现的时间是随机的&#xff0c;单独在数据库客户端工具执行会很快返回结果。根据之前的经验推断是业务代码传入的参数类型与数据库表结构字段定义…

Kubernetes Configmap + Secret

Secret是什么&#xff1f; 在Kubernetes中&#xff0c;Secret是一种用于存储敏感信息的资源对象。它主要用于保存密码、API令牌、密钥和其他敏感数据&#xff0c;以供容器、Pod或集群中的其他资源使用。 Secret有以下特点&#xff1a; 安全存储&#xff1a;Secret对象被用于安全…

【面试必刷TOP101】合并k个已排序的链表 判断链表中是否有环

目录 题目&#xff1a;合并k个已排序的链表_牛客题霸_牛客网 (nowcoder.com) 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;判断链表中是否有环_牛客题霸_牛客网 (nowcoder.com) 题目的接口…

公司电脑文件加密防泄密软件系统——「天锐绿盾」

天锐绿盾是一款功能强大的公司电脑文件加密防泄密软件系统&#xff0c;旨在保护企业的知识产权和商业机密。 PC访问地址&#xff1a;http://985.so/2y2n9 它具有以下几个主要特点&#xff1a; 文件加密&#xff1a;天锐绿盾会对存储在公司电脑上的所有敏感文件进行自动加密&am…

JavaScript学习笔记02

JavaScript笔记02 数据类型详解 字符串 在 JavaScript 中正常的字符串都使用单引号 或者双引号" "包裹&#xff1a;例&#xff1a; 转义字符 在 JavaScript 字符串中也可用使用转义字符&#xff08;参考&#xff1a;详解转义字符&#xff09;&#xff1a;例&…

百度收录和权重怎么提升-网站如何获得百度权重

你是否一直苦恼于网站权重的低迷&#xff1f;不知道如何开始提升网站权重&#xff0c;缺乏优质内容更新网站。不清楚如何进行关键词优化来提升网站排名和权重。SEO是一个需要持续投入时间和资源的过程。每个网站的情况都会有所不同&#xff0c;因此所花费的时间也会有所差异。然…

android studio 找不到设备

问题描述&#xff1a; 当android studio 没有打开&#xff0c; 执行adb devices 可以查看到设备&#xff0c; 当android studio 打开&#xff0c; 执行adb devices 可以查看不到设备&#xff0c; android studio 设备管理器中也没有设备 解决方法&#xff1a; 关闭android s…

数据库_之常用API的使用

数据库_之电商API MySQL C API 使用&#xff08;基本函数&#xff09; Mysql C API函数详解 MySQL的常用API 一个常用的程序调用MySQL数据库的时候通常都会调用以下API,下面来逐个分析. mysql_init() //函数原型 MYSQL *STDCALL mysql_init(MYSQL *mysql);这个API主要是用来分…

竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

文章目录 0 简介1 二维码检测2 算法实现流程3 特征提取4 特征分类5 后处理6 代码实现5 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 该项目较为新颖&#xff0c;适合作为竞赛课…

数据分析三剑客之Pandas

1.引入 前面一篇文章我们介绍了numpy&#xff0c;但numpy的特长并不是在于数据处理&#xff0c;而是在它能非常方便地实现科学计算&#xff0c;所以我们日常对数据进行处理时用的numpy情况并不是很多&#xff0c;我们需要处理的数据一般都是带有列标签和index索引的&#xff0…

uni-app:单页面的页面切换

效果 代码 <template><view><view class"tab-bar"><text class"tab" :class"{ active: activeTab 0 }" click"changeTab(0)">页面1</text><text class"tab" :class"{ active: acti…