文章目录

  • 简介
  • 安装
  • 实战
    • 画框
    • 线图
    • 散点图
    • 柱状图
    • 饼状图
    • 等高线图

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介


Matplotlib是Python一个强大的绘图库,搭配NumPy库的使用,可以满足绝大部分的绘图需求,各种你能想到的图表基本都支持,使用代码即可进行绘制,如果画不出来那一定是你的问题(doge)。

本文主要参考Matplotlib文档,归纳总结Matplotlib常用方法,只举例了部分,所有函数和相关参数不能遍举,更多可参考Matplotlib文档。

安装


如果使用pip安装:

pip install matplotlib

如果使用conda安装:

conda install matplotlib

如果使用的是Pycham,可以直接打开File->settings->Project:->Python Interpreter中安装库。

搜索matplotlib,点击安装即可。


实战

画框


fig是Figure缩写,即外框,可以包含多个内框。ax是Axes缩写,即内框,里面可以画各种图。plt是导入Matplotlib库时的重命名缩写,可以理解为一整张画布,直接添加即可,但细节修改用ax更好。
两种方法都可,比如以下代码是等价的:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()  # 创建一个外框(默认含一个内框),返回两个参数
ax.plot([1, 2], [1, 2])  # 在内框上画一条直线,点(1,1)到(2,2)
plt.show()  # 显示绘图
import matplotlib.pyplot as plt
plt.plot([1, 2], [1, 2])  # 分别是x和y
plt.show()

如一张画布上多个画框:

from matplotlib import pyplot as plt# subplot三个参数:垂直方向画几张图,水平方向画几张图,当前是第几张图
plt.subplot(2, 2, 1)  # 即划分1×2个画框,当前是第1个
plt.title("1")
plt.subplot(2, 2, 2)  # 当前为第2个
plt.title("2")
plt.subplot(2, 2, 3)  # 当前为第3个
plt.title("3")
plt.subplot(2, 2, 4)  # 当前为第4个
plt.title("4")
plt.subplots_adjust(wspace=0.5, hspace=0.5)  # 调整间距plt.show()

引用官网的一张图,除了数据外,一张图表还包含了很多元素,如标题(Title)、说明(Legend)、刻度(Minor tick)、刻度名(Minor tick label)、网格(Grid)、标记(Marker)、x轴y轴等。

相关元素的设置可以参考上图或文档,举个栗子:

import numpy as np
from matplotlib import pyplot as pltplt.title("我的图表")  # 设置图表名
plt.xlabel("X轴[mm]")  # 设置x轴名
plt.ylabel("Y轴[cm]")  # 设置y轴名
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字符编码
plt.rcParams['axes.unicode_minus'] = False  # 编码正常显示负号
plt.xticks(np.arange(0, 60, 5))  # x刻度,从0-60,间隔5
plt.yticks(np.arange(0, 15, 1))  # y刻度,从0-15,间隔1
# x和y的值,即连接点(10,2)、(25,7)、(50,13),设置颜色等可选参数
plt.plot([10, 25, 50], [2, 7, 13], label="折线", color="#FF0000")
plt.legend()  # 显示说明
plt.grid()  # 显示网格
plt.show()  # 显示绘图

(插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

线图


使用plot()函数。

import numpy as np
from matplotlib import pyplot as plt#  ------直线------
plt.plot([0, 10], [0, 5], label="直线", linewidth="3")  # 线宽设置3
#  ------抛物线------
x = np.linspace(0, 10, 100)  # 1-10均匀序列
plt.plot(x, 0.05*x*x, label="抛物线")
#  ------三角函数------
plt.plot(x, np.sin(x), label="正弦曲线")
plt.plot(x, np.cos(x), label="余弦曲线")
#  其他的举一反三,给出函数和定义域即可
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.legend()
plt.show()


各种线条格式:

import numpy as np
from matplotlib import pyplot as pltx = np.linspace(1, 10, 30)
plt.plot(x, x, '-')
plt.plot(x, x+1, '--')
plt.plot(x, x+2, '-.')
plt.plot(x, x+3, 'o')
plt.plot(x, x+4, ',')
plt.plot(x, x+5, 'x')
plt.plot(x, x+6, 'd')
plt.plot(x, x+7, '<')
plt.plot(x, x+8, '>')
plt.plot(x, x+9, 'v')
plt.plot(x, x+10, '+')
plt.plot(x, x+11, '*')
plt.plot(x, x+12, '-')
plt.plot(x, x+13, 'h')
plt.plot(x, x+14, '|')
plt.plot(x, x+15, '1')
plt.plot(x, x+16, '2')
plt.plot(x, x+17, '3')
plt.plot(x, x+18, '4')
plt.plot(x, x+19, '8')plt.show()

散点图


使用scatter()函数。

import numpy as np
from matplotlib import pyplot as plt
plt.figure(figsize=(10, 5))
# ------均匀分布------
plt.subplot(1, 2, 1)
plt.title("均匀分布")
n = 800  # 样本数
x = np.random.rand(n)  # 随机坐标点
y = np.random.rand(n)
colors = np.random.rand(n)  # 随机颜色
size = np.random.rand(n)*100  # 随机大小
plt.scatter(x, y, c=colors, s=size, alpha=0.3)  # alpha是透明度
# ------正态分布------
plt.subplot(1, 2, 2)  # 第二个画框
plt.title("正态分布")
x = np.random.randn(n)
y = np.random.randn(n)
plt.scatter(x, y, c=colors, s=size, alpha=0.3)plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()

柱状图


使用bar()函数。

import numpy as np
from matplotlib import pyplot as plt
plt.figure(figsize=(10, 5))
# ------图1------
plt.subplot(1, 2, 1)
x = np.arange(8)  # 0-7
y = np.random.randint(-3, 5, 8)  # -3到5随机8个数
plt.bar(x, y, width=0.6)
plt.title('图2')
plt.axhline(0)  # 水平线
# ------图2------
plt.subplot(1, 2, 2)
x = np.arange(3)  # 1-3
width = 0.2  # 设置柱宽
plt.bar(x, [4, 6, 2], color='green', width=width, label="A")
plt.bar([i+width for i in x], [3, 7, 4], color='blue', width=width, label="B")
plt.bar([i+2*width for i in x], [5, 6, 4], color='red', width=width, label="C")
plt.xticks([i+width for i in x], ["2020", "2021", "2022"])  # 设置刻度
plt.title('图2')plt.legend()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.show()


还可以使用hist()函数。

import numpy as np
from matplotlib import pyplot as pltx1 = np.random.normal(2.5, 0.5, 1000)  # 期望2.5,标准差0.5,输出大小1000
x2 = np.random.normal(5, 2, 1000)
x3 = np.random.normal(7.5, 1, 1000)
plt.hist(x1, bins=100, alpha=0.5, label="A")  # 100个数据,透明的0.5,标签A
plt.hist(x2, bins=100, alpha=0.5, label="B")
plt.hist(x3, bins=100, alpha=0.5, label="C")plt.legend()
plt.show()

饼状图


使用pie()函数。

from matplotlib import pyplot as plt# explode分裂,autopct百分比格式
plt.pie([0.4, 0.6], labels=["A", "B"], explode=(0, 0.05), autopct='%0.0f%%')
plt.legend()
plt.show()

等高线图


使用contourf函数。

import numpy as np
from matplotlib import pyplot as plt
# ------数据------
x = np.linspace(-3, 3, 256)  # -3到3等差256个点
y = np.linspace(-3, 3, 256)
X, Y = np.meshgrid(x, y)  # 计算x和y的相交点
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)  # 计算Z的坐标
levels = np.linspace(Z.min(), Z.max(), 7)
# ------图1------
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.contour(X, Y, Z)
# ------图2------
plt.subplot(1, 2, 2)
plt.contourf(X, Y, Z)plt.show()

原创不易,请勿转载(本不富裕的访问量雪上加霜 )
博主首页:https://wzlodq.blog.csdn.net/
来都来了,不评论两句吗

Matplotlib光速入门-从安装到绘图实战相关推荐

  1. 246.三元图的应用与绘图实战

    三元图在微生物组研究中的应用 本节作者:吴一磊,中科院微生物所 版本1.0.5,更新日期:2020年6月28日 本项目永久地址:https://github.com/YongxinLiu/Microb ...

  2. p5.js 光速入门中文教程

    本文简介 点赞 + 关注 + 收藏 = 学会了 本文的目标是和各位工友一起有序的快速上手 p5.js ,会讲解 p5.js 的基础用法. 本文会涉及到的内容包括: 项目搭建 p5.js 基础2D图形 ...

  3. Matplotlib快速入门

    1. Matplotlib 常用模块 Matplotlib 库中主要包含两个重要模块 pyplob 和 pylab.pyplot 是 Matplotlib 中的一个重要模块,在后续教程中,我们会经常使 ...

  4. 用python画大白_[Python][可视化]matplotlib基础入门

    Python包matplotlib画图入门,以折线图为例. 在使用之前,导入matplotlib包,设置中文字体 import matplotlib.pyplot as plt %matplotlib ...

  5. python网络爬虫开发从入门到精通_Python突击-从入门到精通到项目实战

    原标题:Python突击-从入门到精通到项目实战 python语言近年来越来越被程序相关人员喜欢和使用,因为其不仅简单容易学习和掌握,而且还有丰富的第三方程序库和相应完善的管理工具:从命令行脚本程序到 ...

  6. [MySQL光速入门]020 事务

    TCL 事务控制语言 SQL的四种语言 DDL(Data Definition Language)数据库定义语言 建表, 建库, 修改表结构 DML(Data Manipulation Languag ...

  7. Matplotlib从入门到精通05-样式色彩秀芳华

    Matplotlib从入门到精通05-样式色彩秀芳华 总结 Matplotlib从入门到精通05-样式色彩秀芳华 导入依赖 一.matplotlib的绘图样式(style)¶ 1.matplotlib ...

  8. AI绘图实战(一):制作购物车图标icon | Stable Diffusion成为设计师生产力工具

    S:你安装stable diffusion就是为了看小姐姐么? I :当然不是,当然是为了公司的发展谋出路~~ 预先学习: 安装及其问题解决参考:<Windows安装Stable Diffusi ...

  9. AI绘图实战(十):制作线稿矢量图之包头巾的女人,画矢量图/生成矢量图/导出矢量图/直出svg/vector studio插件使用 | Stable Diffusion成为设计师生产力工具

    S:AI能取代设计师么? I :至少在设计行业,目前AI扮演的主要角色还是超级工具,要顶替?除非甲方对设计效果无所畏惧~~ 预先学习: 安装及其问题解决参考:<Windows安装Stable D ...

最新文章

  1. python适合做后端开发吗-Python后端开发是什么职位?
  2. mongodb 默认端口号_快2020年了,该如何面对BATJM对MongoDB灵魂式的拷问呢?
  3. 产品团队的批判性思维:如何通过合理的决策带来合理的结果?
  4. python win10 桌面_Python3如何实现Win10桌面自动切换
  5. vue 2个方法先后执行_有效快速制作工资条的2个方法
  6. FreeSWITCH 下载地址
  7. webpack 编译完成执行代码
  8. java 基础做增删改查教学_Java Mybatis 增删改查 简单使用 入门 简版
  9. 3.linux(ubuntu)常用服务器搭建
  10. 如何使用Visual Studio 2017建立一个C语言项目
  11. 小程序apkg还原_谈一谈还原解包后小程序页面wxss样式的若干方法
  12. Kafka拉取某一个时间段內的消息
  13. 烽火戏诸侯用460万字写出最好的小说江湖,《雪中悍刀行》你服吗
  14. Could not initialize class com.fasterxml.jackson
  15. 【渝粤教育】电大中专电子商务网站建设与维护 (18)作业 题库
  16. 【红日靶场系列】ATTCK红队评估3
  17. 超分重建数据集 DIV2K Flickr2K 下载地址【有效分享】
  18. 徐徐落地 2009年云计算五大趋势盘点
  19. 怎么画系统用例图?(内含图例)
  20. dfs算法详解(n皇问题实现)

热门文章

  1. 时间间隔感测试器2.0
  2. Javascript深入浅出理解----汤姆大叔博客(二)
  3. python getattr和getattribute_Python的__getattr__和__getattribute__
  4. selinux中Enforcing, Permissive 和Disable这三种模式的区别
  5. windows命令行(Command Prompt / Console)字体设置
  6. 一文搞懂 MySQL 索引
  7. 浅析景区慢直播的需求与基于视频技术的解决方案
  8. 聊聊如何进行代码混淆
  9. mysql select查询字段_MySQL基础:SELECT查询语句
  10. 设备兼容性 -Device Compatibility