首页 > 其他分享 >Matplotlib基础入门--数据分析三大件完结

Matplotlib基础入门--数据分析三大件完结

时间:2024-08-22 20:27:29浏览次数:9  
标签:大件 plt -- ticks Matplotlib label set axes 图像

Python数据分析三大件基础入门已经跟新完毕

前言

  • Matplotlib 是python 的一个绘图库,提供了直方图、散点图……等图像的画法
  • 本文将介绍Matplotlib绘图的基本操作,想要熟练使用需要不断实战

文章目录

Matplotlib基础步骤

import matplotlib.pyplot as plt
#设置字体
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]

"""
1、创建画布
    plt.figure(figsize=(), dpi=)
    figsize: 指定长度
    dpi: 图像的清晰度
    返回flg对象

2、绘制图像
    以折线图为例
    plt.plot(x, y)
3、显示图像
    plt.show()
"""

例子:折线图绘制与显示

#1、创建画布
plt.figure(figsize=(10,10), dpi=100)
#2、绘制折线图
plt.plot([1,2,3,4,5,6,7,8], [1,2,3,4,5,6,7,8])
#3、显示图像
plt.show()


在这里插入图片描述

基础绘图功能

折线图

案例:画出城市11点到12点1小时内每分钟的温度折线图,范围:15~18度

1.1、准备数据并画出初始折线图

import matplotlib.pyplot as plt
import random

#数据
x = range(50)
y_shanghai = [random.uniform(15,18) for i in x]  #生成50个 15~18中间的数字
print(y_shanghai)
#1、创建画布
plt.figure(figsize=(20,8),dpi=80)

#2、绘制折线图
plt.plot(x, y_shanghai)

#3、显示图像
plt.show()
y_shanghai:随机数显示
[16.875817833161456, 15.451008116552151, 17.58067075895153, 17.288801706428366, 15.200932586506742, 16.909753257480574, 16.480645292862373, 17.42294691433753, 16.05638787307683, 15.474114004023923, 15.728478813481193, 17.832324581551454, 15.76244866525853, 16.72710315835741, 16.26421137400754, 17.727771939033705, 17.12830280854327, 15.803368544334655, 17.46081769393601, 17.97550957499392, 17.31322639092533, 15.46695162014346, 16.76494328781358, 15.786037685150003, 16.67695939202865, 17.984011492175945, 16.57571973389307, 17.290330688708703, 17.194655619506378, 17.997727061048515, 15.472782111662703, 16.387287685179523, 15.5249822661221, 17.405731776976634, 17.647349574547782, 15.38360790790629, 16.503231567098897, 16.699982734626243, 17.00959412214185, 17.002731294604832, 16.741321181338556, 16.10071468001527, 15.846096283640717, 17.222802062622463, 16.072327302102522, 16.57900024740193, 15.259950695978013, 16.74506786820688, 16.06341403220067, 17.815735953522566]

在这里插入图片描述

1.2、添加自定义刻度

1、构建x刻度和标签
x_ticks_label = [“11点{}分”.format(i) for i in x]
构建y刻度
y_ticks = range(40)

2、修改
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

#构建x刻度和标签
x_ticks_label = ["11点{}分".format(i) for i in x]
#构建y刻度
y_ticks = range(40)

#修改
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

1.3、中文乱码

#设置字体
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]

1.4、加网格

plt.grid(True, linestyle='--', alpha=0.5)

1.5、添加描述信息

plt.xlabel("时间")
plt.ylabel("温度")
plt.title("11:00~12:00之间温度变化", fontsize=20)

1.6、保存图像

plt.savefig("test1.png")
#注意:plt.show()会释放figure资源,所以必须在显示前保存,显示后保存也只能保存空照片

1.7、总代码

import matplotlib.pyplot as plt
import random
from pylab import mpl

#设置中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False

#0.准备数据
x = range(50)
y_shanghai = [random.uniform(15,18) for i in x]      #列表推导式

#1、创建画布
plt.figure(figsize=(20,8), dpi=100)

#2、绘制图像
plt.plot(x, y_shanghai)

#2.1、添加刻度
#添加标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(50)

#刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

#2.2、添加网格
plt.grid(True, linestyle="--", alpha=0.5)

#2.3、添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11~12点间温度变化", fontsize=20)

#2.4图像保存
plt.savefig("./test.png")

#3、图像显示
plt.show()


在这里插入图片描述

2、一个坐标显示多个图像

图像可以设置风格、颜色---->现用现查

案例

#0.准备数据
x = range(60) 
y_shanghai = [random.uniform(15,18) for i in x]    #随机数的使用
y_beijing = [random.uniform(1,3) for i in x]

#1.创建画布
plt.figure(figsize=(20, 8), dpi=100)

#2. 绘制图像
plt.plot(x, y_shanghai, label="上海")
plt.plot(x, y_beijing, label="北京", color="r", linestyle="--")

#2.1 添加x、y标签
#构造x,y刻度标签
x_ticks = ["11点{}分".format(i) for i in x]
y_ticks = range(60)

#刻度显示
plt.xticks(x[::5], x_ticks[::5])
plt.yticks(y_ticks[::5])

#2.2 添加网格
plt.grid(True, linestyle="--", alpha=0.5)

#2.3 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点到12点温度变化", fontsize=20)

#2.4 保存图像
plt.savefig("./test2.png")

#2.5 添加图例         有时候显示不出来label需要设置图例
plt.legend(loc=0)

#3. 图像显示
plt.show()


在这里插入图片描述

3、多个坐标显示

可以通过subplots函数实现(旧的版本中有subplot,使⽤起来不⽅便),推荐subplots函数
matplotlib.pyplot.subplots(nrows=1, ncols=1, **fig_kw) 创建⼀个带有多个axes(坐标系/绘图区)的图
解释:
nrows, ncols: 设置有几行几列数据
fig: 图对象
axes:返回相应数量的坐标系

设置标题等方式不同:
set_xticks
set_yticks
set_xlabel
set_ylabel

plt.函数名() 相当于面向过程,axes相当于面向对象画图方法

#0 准备数据
x = range(60)
y_shanghai = [random.uniform(5,10) for i in x]
y_beijing = [random.uniform(1,5) for i in x]

#1 创建画布
flg, axes = plt.subplots(nrows=1,ncols=2, figsize=(20,80),dpi=100)   #创建一个一行两列的子图

# 2 绘制图像
axes[0].plot(x, y_shanghai, label="上海")
axes[1].plot(x, y_beijing, color="r", linestyle="--", label="北京")

#2.1 添加x,y刻度
# 构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(10)

# 刻度显示
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5])   #刻度与标签分离

axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])

# 添加网格
axes[0].grid(True, linestyle="--", alpha=0.5)
axes[1].grid(True, linestyle="--", alpha=0.5)

#添加描述信息
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_title("11点到12点温度变化图", fontsize=20)
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_title("11点到12点温度变化图", fontsize=20)

# 图像保存
plt.savefig("./test3.png")

# 添加图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)

#3 图像显示
plt.show()


在这里插入图片描述
6)

4、plot其他图像绘制

import numpy as np

#0 准备数据
x = np.linspace(-10, 10, 1000)
y = np.sin(x)

#1 创建画布
plt.figure(figsize=(20,8), dpi=100)

#2 绘制函数图像
plt.plot(x, y)

#3 显示
plt.show()


在这里插入图片描述

5、其他

现用现查即可

#散点图
plt.scatter()
#柱状图
plt.bar()
#直方图
plt.his()
#饼图
plt.pie

标签:大件,plt,--,ticks,Matplotlib,label,set,axes,图像
From: https://blog.csdn.net/weixin_74085818/article/details/141280974

相关文章

  • SQLite数据库
    一、概念:对于一般小批量的数据存放且掉电数据不会丢失,软件的配置及想要持续保存的数据会放入文件中,而对于大批量数据存储和管理时则使用数据库 二、类型:1、关系型数据库 (1)大型数据库:Oracle、DB2(2)中型数据库:MySQL(开源)、SQLServer(3)小型数据库:SQLite 虽然是小型数......
  • 3.5 set(集合)
    set(集合)无序集合,重点就是去重和无序。(1)添加元素saddkeymember1member2...向键authors的集合中添加元素zhangsan、lisi、wangwusaddauthorszhangsanlisiwangwu(2)获取集合的所有的成员smemberskey获取键authors的集合中所有元素smembersauthors(3)获取集合的长......
  • I/O(输入/输出)——字节流和字符流
    一、字节流    在计算机中,无论是文本、图片、音频还是视频,所有文件都是以二进制的形式(也就是字节)存在的。为字节的输入输出流提供的一系列流统称为字节流。在JDK中提供了两个抽象类InputStream和OutputStream,它们是字节流的顶级父类。1.InputStream    Inpu......
  • 代码随想录Day23
    131.分割回文串给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]提示:1<=s.length<=16s仅由......
  • 队列操作(深入理解FreeRTOS队列之队列实战)
    文章目录一、队列的操作二、学习总结在FreeRTOS中,队列的本质是环形缓冲区。一、队列的操作1、创建队列2、写队列3、读队列详细可看此篇博客:FreeRTOS——队列(基于百问网DshanMCU-F103实现挡球板游戏改造)-CSDN博客基于链表解析队列的使用:代码示例:#include"......
  • 深入解析财务报表:如何抓住关键指标作出明智决策
    一、概述财务报表中包含了丰富的信息,但如果在分析时缺乏明确的思路或忽略重点,很容易被复杂的数据搞得无所适从。本文将介绍财务报表中的关键指标,包括资产负债率的分析、净资产收益率的解读,以及销售复合增长率的计算,帮助大家有针对性地理解和学习这些内容。二、关键指标解读首......
  • 2024河南省萌新联赛第(六)场 郑州大学
    文章目录2024河南省萌新联赛第(六)场郑州大学A.装备二选一(一)题意:思路:AC代码:B.百变吗喽题意:思路:AC代码:C.16进制世界题意:思路:AC代码:D.四散而逃题意:思路:AC代码:F.追寻光的方向题意:思路:AC代码:G.等公交车题意:思路:AC代码:I.正义从不打背身题意:思路:AC代码:2024河南省萌新......
  • 3.6 zset(有序集合)
    zset(有序集合)有序集合(score/value),去重并且根据score权重值来进行排序的。score从小到大排列。(1)添加成员zaddkeyscore1member1score2member2score3member3....设置榜单achievements,设置成绩和用户名作为achievements的成员127.0.0.1:6379>zaddachievements61xiao......
  • C语言的语句分类
    C语言的代码是由一条条语句构成的,可分为五类:空语句一个分号就是一个语句,即空语句,一般出现的地方是:这里需要一条语句,但这个语句不需要做任何事。表达式语句在表达式的后面加上分号,构成表达式语句。函数调用语句复合语句成对括号中的代码构成一个代码块,也称复合语句。控......
  • 达梦读写分离集群的配置与测试
    操作系统版本CentOS7.6数据库版本DM8_20240712数据守护集群版本V4.0目录1.环境准备2.dm_svc.conf配置3.实现原理4.测试1.环境准备        配置读写分离集群,需要先搭建即时归档或实时归档模式的主备集群。我们使用上篇文档《在一台主机上搭建达梦主备集群......