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,一经查实,立即删除!

相关文章

JS_socket.io简单使用

安装socket.io npm install --save socket.iodemo目录 ├── index.js ├── node_modules ├── package.json └── views└── index.html服务端代码 ./index.js const http require(http); const fs require(fs); const socketIO require(socket.io); const se…

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

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

bit、bin 、mcs文件区别

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

linux目录内容详解

目录 从上到下,你所看到的目录如下 /bin /bin 目录是包含一些二进制文件的目录,即可以运行的一些应用程序。 你会在这个目录中找到上面提到的 ls 程序,以及用于新建和删除文件和目录、移动它们基本工具。还有其它一些程序,等等。…

循环神经网络

循环神经网络(Recurrent Neural Networks,RNN)是一种强大的深度学习模型,适用于处理序列数据,如时间序列、文本、语音等。RNN具有记忆能力,可以捕捉序列中的时间依赖关系,并广泛应用于自然语言处…

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

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

UGUI画布加载优化

在Unity中,UGUI画布的加载优化可以通过以下几种方式来实现: 1. 合理使用画布渲染模式:UGUI画布有三种渲染模式,分别是Screen Space - Overlay、Screen Space - Camera和World Space。在使用时,应根据场景需求选择最适…

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

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

Flask: 上传文件的功能怎么做?

介绍 无论你是处理允许用户上传头像的社交媒体网站、管理用户文件的云存储服务,还是接收数据进行处理的企业应用程序,文件上传都是促进这些交互的基本功能。 Flask 是一个轻量级且灵活的 Python Web 框架,因其易用性和灵活性而成为开发人员的热门选择。它提供了一组强大的工…

Qt——对话框简介

对话框:交互界面的便捷窗口 在现代计算机应用程序中,对话框是用户界面设计的重要组成部分,用于与用户进行信息交互和数据输入。对话框可以分为独立对话框和定制对话框两大类,它们为用户和应用程序之间的交流提供了便捷的窗口。 …

数据结构(C语言)——栈的两种实现方式

下面来介绍栈的两种实现方式&#xff1a; 一、数组 #include<stdio.h> #include<stdlib.h> #define E int #define MAX_STACK 5 //数据结构-栈&#xff08;数组实现&#xff09; typedef struct my_stack {E *sta;//栈大小为5int pos;//栈顶位置 }my_stack; //初…

ARM的异常处理

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

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 上下文对象&#…

JavaScript获取字符串的字节长度

概要 提示&#xff1a;大家都知道&#xff0c;获取字符串的长度可用length来获取。 那么获取这段字符串的字节数呢&#xff1f;英文字母肯定lenght和字节数都一样&#xff1a;都是1而中文lenght1&#xff0c;字节数2因此&#xff0c;需要作的就是把中文字符的字节数计算出来。 …

通过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对象被用于安全…

算法训练第五十九天

503. 下一个更大元素 II - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {vector<int> nums1(nums.begin(), nums.end());nums.insert(nums.end(), nums1.beg…