matplotlib的基本使用 附python代码详细讲解(基本图的绘制、样式、简单函数的使用)

目录

    • 一、基本图的绘制
      • 1.1直线的绘制
      • 1.2折线的绘制
      • 1.3散点图的绘制
      • 1.4绘制不同颜色的散点图
      • 1.5绘制不同颜色的线
      • 1.6柱状图
      • 1.7饼状图
      • 1.8直方图
      • 1.9三维图
      • 1.10等高线图
    • 二、样式
      • 2.1基本样式
      • 2.2画布分区的使用
    • 三、函数
      • 3.1简单的一元二次方程
      • 3.2三角函数

一、基本图的绘制

1.1直线的绘制

# coding=utf-8import matplotlib.pyplot as plt# 连接(0,3) (4,5)两个点
plt.plot([0, 4], [3, 5])# 显示x轴 y轴
plt.ylabel("y")
plt.xlabel("X")# 保存路径
plt.savefig("F:/Z/Python/project/project2/matl/直线.jpg")
# 显示图
plt.show()

运行效果
在这里插入图片描述

1.2折线的绘制

# coding=utf-8import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 创建 X Y Z坐标X = [1, 5, 7, 9, 5]
Y = [9, 6, 7, 3, 6]
Z = [5, 6, 9, 3, 4]# 生成画布对象
figure = plt.figure()# 创建一个Axes3D的子图放到figure画布里面
ax = Axes3D(figure)
ax.plot_trisurf(X, Y, Z)plt.show()

运行效果
在这里插入图片描述

1.3散点图的绘制

# coding=utf-8import matplotlib.pyplot as plt
import numpy as np# 生成0-10之间(0开始 10结束) 100个等差数
x = np.linspace(0, 10, 100)sin_y = np.sin(x)
# 进行绘制正弦曲线
# plt.plot(x,sin_y)# 绘制散点图
plt.scatter(x, sin_y)
# plt.plot(x,sin_y,"o")plt.show()"""
注意:由上可知,使用plot绘制和使用scatter绘制出来的图形是一样的但是,如果画一堆点,点的形式没有差别就建议使用plot,因为plot的绘图速度优于scatter如果点的形式有差别(点的大小和颜色不同),就必须使用scatter
"""

运行效果
在这里插入图片描述

1.4绘制不同颜色的散点图

# coding=utf-8import matplotlib.pyplot as plt
import numpy as np# 绘制10种大小,10种颜色的散点图
# 执行多次获取的随机数都是一样的
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)# 生成10种大小
size = np.random.rand(100)*1000
# print(size)
# 生成10中颜色
color = np.random.rand(100)# 绘制散点图   size:颜色   color:颜色    alpha:透明度
plt.scatter(x, y, s=[size], c=color,alpha=0.9)plt.show()"""
注意:
大小、颜色的个数和x,y的个数应该保持一致 要不然会出现类似下面的报错
'c' argument has 10 elements, which is inconsistent with 'x' and 'y' with size 100.s must be a scalar, or the same size as x and y"""

运行效果
在这里插入图片描述

1.5绘制不同颜色的线

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

# coding=utf-8import matplotlib.pyplot as plt
import numpy as np# 创建x
x = np.linspace(0, 10, 100)
# 使用legend()方法添加图例,给plot方法添加参数
plt.plot(x, x + 0, "--g", label="--g")
plt.plot(x, x + 1, ",b", label=",b")
plt.plot(x, x + 2, "or", label="or")
plt.plot(x, x + 3, ":c", label=":c")
plt.plot(x, x + 4, "vy", label="vy")
plt.plot(x, x + 5, "--m", label="--m")# 默认的图例位置在左上角upper left  可以通过loc进行修改   ,边框,透明度,阴影,边框宽度
plt.legend(loc="lower right", fancybox=True, framealpha=1, shadow=True, borderpad=1)# plot的颜色字符、风格字符、标记字符: https://www.jianshu.com/p/ed3f31fc6a41plt.show()

在这里插入图片描述

1.6柱状图

# coding=utf-8import matplotlib.pyplot as plt# 创建x:年份  y:利润
x = [2016, 2017, 2018, 2019, 2020]
x_label = ["2016年", "2017年", "2018年", "2019年", "2020年"]
y = [-500000000000, 60000000000, 70000000000, 80000000000, 900000000000]# 解决柱状图中无法显示负号的问题
plt.rcParams['axes.unicode_minus'] = False# 调用bar函数绘制柱状图
# width修改柱的宽度
plt.bar(x, y, width=0.8)# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']# 修改x坐标的值
plt.xticks(x, x_label)# 显示x轴 y轴名称
plt.ylabel("利润")
plt.xlabel("年份")# 增加标题
plt.title("每年对应的利润图")
plt.show()

运行效果
在这里插入图片描述

1.7饼状图

# coding=utf-8import matplotlib.pyplot as plt# 山羊、狗和鸭子的数量
sheep = 666
dogs = 555
ducks = 888
# 山羊、狗和鸭子的比例
sheep_percent = sheep/(sheep+ducks+dogs)
dogs_percent = dogs/(sheep+ducks+dogs)
ducks_percent = ducks/(sheep+ducks+dogs)# 添加名称
labels =["山羊","狗","鸭子"]# 可自选颜色
colors = ["blue","green","red"]# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']# 绘制饼状图
paches,texts,autotexts=plt.pie([sheep_percent,dogs_percent,ducks_percent],labels=labels,colors=colors,explode=(0,0,0.05),autopct="%0.1f%%")# 设置饼状图字体颜色
for text in autotexts:text.set_color("white")# 设置字体大小
for text in texts+autotexts:text.set_fontsize(15)plt.show()

运行效果
在这里插入图片描述

1.8直方图

# coding=utf-8import matplotlib.pyplot as plt
import numpy as np# 生成1000个正态分布随机数
x = np.random.randn(1000)# plt.hist(x)
# 修改柱的宽度  bins
plt.hist(x, bins=100)
plt.show()

运行效果
在这里插入图片描述

1.9三维图

# coding=utf-8import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D# 创建 X Y Z坐标X = [1, 5, 7, 9, 5]
Y = [9, 6, 7, 3, 6]
Z = [5, 6, 9, 3, 4]# 生成画布对象
figure = plt.figure()# 创建一个Axes3D的子图放到figure画布里面
ax = Axes3D(figure)
ax.plot_trisurf(X, Y, Z)plt.show()

运行效果
在这里插入图片描述
注:鼠标点住图,可使其旋转
如果不能的解决办法:

  1. 在pycharm中点击“File—>setting”,打开设置窗口。
  2. 找到最后一个工具选项tools.
  3. 找到“Python Scientific”,去除Show plots in toolwindow框中的勾号

1.10等高线图

# coding=utf-8import matplotlib.pyplot as plt
import numpy as np# 创建x,y,生成100个随机的x,y
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)# 计算x,y相交的点X,Y
X, Y = np.meshgrid(x, y)# 计算Z
Z = np.sqrt(X ** 2 + Y ** 2)
plt.contourf(X, Y, Z)plt.show()

运行效果
在这里插入图片描述

二、样式

2.1基本样式

# coding=utf-8import matplotlib.pyplot as plt# 准备绘制的点
x = [0, 1, 2, 3, 4, 5, 6]
y = [1, 2, 4, 8, 16, 32, 64]# 显示x轴 y轴名称
plt.ylabel("y轴")
plt.xlabel("X轴")# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']# 调用绘制方法
plt.plot(x, y)# 给图添加标题
plt.title("标题")# 保存路径
plt.savefig("F:/Z/Python/project/project2/matl/base_pattern.jpg")# 显示图
plt.show()

运行效果
在这里插入图片描述

2.2画布分区的使用

# coding=utf-8import matplotlib.pyplot as plt
import numpy as np# 生成0-10之间(0开始 10结束) 100个等差数
x = np.linspace(0, 10, 100)# 正弦
sin_y = np.sin(x)
# 对画布进行分区 将画布分为2行2列 划分到1区(这里几区呢相当于数学当中的象限)
plt.subplot(2,2,1)
# 修改x,y的坐标范围
plt.xlim(-5,15)
plt.ylim(-2,1.5)
# 进行绘制正弦曲线
plt.plot(x,sin_y)# 对画布进行分区 将画布分为2行2列 划分到2区(这里几区呢相当于数学当中的象限)
plt.subplot(2,2,2)
plt.plot(x,np.cos(x))plt.show()

运行效果
在这里插入图片描述

三、函数

3.1简单的一元二次方程

# coding=utf-8import matplotlib.pyplot as pltx = range(-100, 100)
y = [i ** 2 for i in x]# 调用绘制方法
plt.plot(x, y)# 保存
plt.savefig("onetwofangcheng.jpg")# 显示图
plt.show()

运行结果
在这里插入图片描述

3.2三角函数

# coding=utf-8import matplotlib.pyplot as plt
import numpy as np# 生成0-10之间(0开始 10结束) 100个等差数
x = np.linspace(0, 10, 100)# 正弦
sin_y = np.sin(x)
# 进行绘制正弦曲线
plt.plot(x, sin_y)# 进行绘制余弦曲线
cos_y = np.cos(x)
plt.plot(x, cos_y)# 保存
plt.savefig("sincos.jpg")
plt.show()

运行效果
在这里插入图片描述
注意:cos类似

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

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

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

相关文章

算法的时间复杂度(python版容易理解)+常用的时间复杂度、python代码--数据结构

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录一、算法时间复杂度的应用二、如何计算算法的时间复杂…

python小白如何看报错?实用三步法

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 怎么正确看报错?拿一段代码来说事:…

测试必备:单元测试测试类,以帮助匿名管理调查的类为例详解--白盒测试

类的测试与函数的测试相似 测试函数的案例:https://blog.csdn.net/hanhanwanghaha/article/details/107487037 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努…

解决Pycharm文件夹中同级目录导包报错的问题

报错情况:导包报错,但程序仍然可以运行 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载&#xff0…

外星人入侵游戏--python实战 (附完整代码)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录一、前提准备二、效果展示三、代码alien_invasion.pys…

测试必备:if条件测试( if-else语句、if-elif-else语句、多个elif代码块、省略else代码块、测试多个条件)

目录if-else语句if-elif-else语句多个elif代码块省略else代码块测试多个条件if-else语句 以买车票为例,儿童身高超过1.5m就需要买全票,我们可以用 if-else语句来演示。设身高为1.6m,超过了1.5,就会输出全票 # coding utf-8"…

数据分析CSV模块的基本使用(以分析复杂的天气情况为例),附完整的Python代码及csv文件详解---数据可视化

目录一、前提准备二、代码解释2.1分析CSV文件头2.2提取并读取数据2.3绘制气温图表2.4在图表中添加日期(datetime模块)2.4.1书上源代码2.4.2完善代码2.5覆盖更广的时间2.5.1书上源代码2.5.2完善代码2.6再绘制一个数据系列--添加最低气温数据2.6.1添加最低…

ValueError: invalid literal for int() with base 10:Python报错及其解决办法

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 报错情况 ValueError: invalid literal for int() with b…

数据分析--使用Web API(应用编程接口)以自动请求GitHub网站的特定信息为例爬取数据,附完整的Python代码详解

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请注明出处(如不注明,盗者必究&#xf…

IndexError: list index out of range--Python报错原因及解决办法

报错原因 一、括号里面的索引index超出范围 例如:要查找最后一个明星的名字‘Hannah Quinlivan’,Index输入为4。在Python中,第四个元素的索引为3,因为索引是从0开始的。如果想要找最后一个,但是不知道索引为几的时候…

ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (download

出现报错 出现了这个报错 ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (downloaded from C:\Users\admin\AppData\Local\Temp\pip-req-build-bscsadf5, content-type: text/html); cannot detect archive format ERROR: Ca…

创建数据库python: can‘t open file ‘manage.py‘: [Errno 2] No such file or directory报错

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 在创建数据库时运行代码 python manage.py migrate运行结…

Django的简单介绍及虚拟环境的搭建、创建项目,数据库(Windows版超级详细)--Python web应用程序开发(Python实战)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录Djanggo简介建立虚拟环境(Anaconda终端下)激活虚拟环境…

教你用8行代码将word转换为pdf格式 及 6行代码实现批量将word转换为pdf格式--python实用小技能get起来

目录将word转换为pdf格式安装pywin32上代码运行结果批量实现word转pdf安装docx2pdf上代码运行结果将word转换为pdf格式 安装pywin32 代码(Anaconda终端下) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsingh…

用Python高效地将 多个excel表快速汇总成一个excel表--python办公实用小技能分享

相信很多友友们都遇到一个同样的问题,就是将多个excel表汇总成一个表效率极低,不止如此,还要看有没有复制错。在学校担任多种职务的我总是要汇总很多个表格,早就用python来想解决这个问题,经过借鉴网上的多位大咖的代码…

教你如何使用 Python 将 pdf 文档进行 加密 解密——python实用小技能分享

上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! 在Anaconda终端下输入代码 pip install --u…

简历避免采坑总结——为什么你的简历杳无音信?程序员的简历该怎么写?看这一篇就够了!毕业生快进 (待更新)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 这段时间熬夜看很多位程序员大佬的简历,也看了…

Git最新版下载(安装包)——阿里镜像快速下载

官网下载 https://git-scm.com/downloads 但是官网下载太慢了,我估计我这网络肯定得下载好几天呢,可能大家也是,于是我找到阿里镜像 下载最新版的Git,利用阿里镜像会下载的很快 https://npm.taobao.org/mirrors/git-for-windows…

[Git GitHub] Windows下安装git,从0开始搭建git环境(配置环境变量+设置git-ssh key...配置)(超全版)

目录前提准备安装GitGit配置配置环境变量git配置ssh认证配置过程配置邮箱和用户名(个人身份)文本换行符配置前提准备 下载地址:点击此处 点击Windows进行下载。 若下载比较慢,点击此处 安装Git 下载之后,双击Git-2…

如何将本地文件利用git工具上传到github仓库中(超详细+最新版)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 如何将本地文件利用git工具上传到github仓库中一、初次使用…