Python绘图库Matplotlib的基本用法
作者:Apple-yeran 发布时间:2023-04-27 15:44:34
一、前言
Matplotlib是Python的绘图库,不仅具备强大的绘图功能,还能够在很多平台上使用,和Jupyter Notebook有极强的兼容性。
二、线型图
import matplotlib.pyplot as plt
import numpy as np
# 指定生成随机数的种子,这样每次运行得到的随机数都是相同的
np.random.seed(42)
# 生成30个满足平均值为0、方差为1的正态分布的样本
x = np.random.randn(30)
# plot本意有“绘制(图表)”的意思,所以下面这一行代码是绘制图表。r指定绘制的线条颜色为红色,o指定标记实际点使用的形状为圆形,--指定线条形状为虚线
plt.plot(x, "r--o")
# 显示图表
plt.show()
三、线条颜色、标记形状和线型
线条颜色常用参数:
“b”:指定绘制的线条颜色为蓝色。
“g”:指定绘制的线条颜色为绿色。
“r”:指定绘制的线条颜色为红色。
“c”:指定绘制的线条颜色为蓝绿色。
“m”:指定绘制的线条颜色为洋红色。
“y”:指定绘制的线条颜色为黄色。
“k”:指定绘制的线条颜色为黑色。
“w”:指定绘制的线条颜色为白色。
标记形状常用参数:
“o”:指定标记实际点使用的形状为圆形。
“*”:指定标记实际点使用的形状为星形。
“+”:指定标记实际点使用的形状为加号形状。
“x”:指定标记实际点使用的形状为x形状。
线型常用参数:
“-”:指定线条形状为实线。
“–”:指定线条形状为虚线。
“-.”:指定线条形状为点实线。
“:”:指定线条形状为点线。
import matplotlib.pyplot as plt
import numpy as np
# 未指定种子的值,所以最终产生的随机数不同
# randn()生成30个满足平均值为0、方差为1的正态分布的样本
a = np.random.randn(30)
b = np.random.randn(30)
c = np.random.randn(30)
d = np.random.randn(30)
# a:红色,虚线,圆形;b:蓝色,实线,星号;c:绿色,点实线,加号;d:洋红色,点线,x形状
plt.plot(a, "r--o", b, "b-*", c, "g-.+", d, "m:x")
plt.show(
四、标签和图例
为了让绘制的图像更易理解,我们可以增加一些绘制图像的说明,一般是添加图像的轴标签和图例,如下面的例子所示:
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)
x = np.random.randn(30)
y = np.random.randn(30)
# 图表标题
plt.title("Example")
# 图表标签
plt.xlabel("X")
plt.ylabel("Y")
# X, Y后面的逗号去掉会报出警告
X, = plt.plot(x, "r--o")
Y, = plt.plot(y, "b-*")
# 图例显示(显示图片右上角的图例)
# legend()有两个列表参数,第一个列表参数是图中实际使用的标记和线性,第二个列表参数是对应图例的文字描述
# legend本意:传奇、图例、解释、说明,这里是图例的意思
plt.legend([X, Y], ["X", "Y"])
plt.show()
五、子图
当需要将多个图像同时在不同的位置显示,则需要用到子图(Subplot)的功能。
import matplotlib.pyplot as plt
import numpy as np
# 未指定随机数种子的值
a = np.random.randn(30)
b = np.random.randn(30)
c = np.random.randn(30)
d = np.random.randn(30)
# 定义一个实例fig,相当于子图最外面的大图
fig = plt.figure()
# 向fig实例中添加需要的子图,前两个参数表示把大图分成了2行2列,最后一个参数表示使用哪一张子图进行绘制
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)
# 设置图例
A, = ax1.plot(a, "r--o")
ax1.legend([A], ["A"])
B, = ax2.plot(b, "b-*")
ax2.legend([B], ["B"])
C, = ax3.plot(c, "g-.+")
ax3.legend([C], ["C"])
D, = ax4.plot(d, "m:x")
ax4.legend([D], ["D"])
plt.show()
六、散点图
如果需要获取的是一些散点数据,则可以通过绘制散点图(Scatter)来展示数据的分布和布局。
import matplotlib.pyplot as plt
import numpy as np
# 设置随机数种子的值
np.random.seed(42)
x = np.random.randn(30)
y = np.random.randn(30)
# 散点图,scatter()的参数必须同时含有x, y
plt.scatter(x, y, c = 'g', marker='o', label = "(X, Y)")
# 散点图的标题
plt.title("Example")
# 设置坐标轴的标签
plt.xlabel("X")
plt.ylabel("Y")
# 设置图例,loc=0表示使用最好的位置,loc=1强制图例使用图中右上角的位置,loc=2强制使用左上角位置,loc=3强制使用左下角位置,loc=4强制使用右下角位置
plt.legend(loc = 1)
# 显示图像
plt.show()
scatter()方法 * 别需要注意的参数:
“c”:指定散点图中绘制的参数使用哪种颜色,这与第2部分线条常用参数相,所以这里g表示设置为绿色。
“marker”:指定散点图中绘制的参数点使用哪种形状,和第2部分标记形状常用参数相同,所以这里o表示设置为圆形。
“label”:指定在散点图中绘制的参数使用的图例,这里与第3部分图例有所不同,注意区别。
七、直方图
直方图(Histogram)是一种统计报告图,通过使用一些列高度不等的纵向条纹或直方表示数据分布的情况,一般用横轴表示数据类型,纵轴表示分布情况。下面来看具体实例:
import matplotlib.pyplot as plt
import numpy as np
# 指定随机数种子的值
np.random.seed(42)
x = np.random.randn(1000)
# 直方图,bins表示绘制的直方图的条纹的数量;color表示直方图条纹的颜色,g表示绿色
plt.hist(x, bins = 20, color = 'g')
# 设置标题
plt.title("Example")
# 设置坐标轴标签
plt.xlabel("X")
plt.ylabel("Y")
# 显示图像
plt.show()
八、饼图
import matplotlib.pyplot as plt
# 标签
labels = ['Dos', 'Cats', 'Birds']
# sizes的三个数字确定了每部分数据系列在整个圆形中的占比
sizes = [15, 50, 35]
# 饼图,explode定义每部分数据系列之间的间隔,设置两个0和一个0.1,就能突出第三部分;autopct将sizes中的数据以所定义的浮点数精度进行显示;
# startangle是绘制第一块饼图时,该饼图与X轴正方向的夹角度数,这是设置90度,默认是0度。
plt.pie(sizes, explode = (0, 0, 0.1), labels = labels, autopct = '%1.1f%%', startangle = 90)
# 下面的一行代码必须存在,用于使X轴和Y轴的刻度时刻保持一致,只有这样,最后得到的饼图才是圆的
plt.axis('equal')
# 显示图像
plt.show()
来源:https://blog.csdn.net/weixin_44072535/article/details/116239336


猜你喜欢
- 数据结构数据结构的概念很好理解,就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建
- Python中的列表是简直可说是有容乃大,虽然看似类似C中的数组,但是Python列表可以接受任意的对象元素,比如,字符串,数字,布尔值,甚
- Agent 服务启动后又停止本地计算机上的SQL Server Agent 服务启动后又停止了,一些服务自动停止,如果它们没有什么可做的例如
- 1. 基本环境安装 anaconda 环境, 由于国内登陆不了他的官网 https://www.continuum.io/downloads
- 一,将介绍如何(1)mysql5.7是有默认密码的查找默认密码grep 'temporary password' /var/
- 前言本文是美团一位大佬写的,还不错拿出来和大家分享下,代码中嵌套在html中sql语句是java框架的写法,理解其sql要执行的语句即可。背
- Python中yaml文件的读写(使用PyYAML库)。最近在搭建自动化测试项目过程中经常遇到yaml文件的读写,为了方便后续使用,决定记下
- 本文实例讲述了php基于curl实现随机ip地址抓取内容的方法。分享给大家供大家参考,具体如下:使用php curl 我们可以模仿用户行为,
- IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固
- 前言由于总是出错,记录一下连接MySQL数据库的过程。连接过程1.下载MySQL并安装,这里的版本是8.0.182.下载MySQL的jdbc
- 1、网页在加载时,页面代码中的js文件引用(如下)都会向服务器产生http请求,因为在body.onload事件之前加载的文件(这里我称之为
- 一.基本的查询语句,特殊符号||。制定列的别名AS,唯一标示distinct1.字符连接符“||”与“+”符oracle:select &n
- 安装pillow(python的图形界面库)第一种方法在Dos界面输入pip install pillow(但是不知为何总是失败);搞了好几
- 1、原材料1.1 花灯纸如下所示,还可以加上自己喜欢的图案、文字等。2.2 Python环境和模块一台安装了Python环境的电脑,Pyth
- pycharm出现no module named xlwt问题首先声明,我是初学者,今天按照书上步骤,创建Excel文件,当我的xlwt安装
- 第一次碰到这个问题的时候,确实不知道该怎么办,后来请教了一个大神,加上自己的理解,才了解是什么意思,这个东西写python的会经常用到,而且
- Apache SkyWalking 在本月初发布了 SkyWalking Backend、UI 的 9.2.0 版本 以及&nbs
- 方法一、使用在父模板中使用{include file="child.tpl"}直接将子模板包含进来优点:1、有利于模块的
- 本文实例讲述了js实现黑色简易的滑动门网页tab选项卡效果。分享给大家供大家参考。具体如下:这是一款js实现的黑色风格网页滑动门菜单,虽然简
- 在sql语句中,如果查找某个文本字段值为空的可以用select * from 表 where 字段=''但是如果