使用 Matplotlib 组件绘图时,经常要与 Numpy 组件搭配使用 。 
使用 Matplotlib 绘图首先要导入 Matplotlib 组件 , 由于大部分绘图功能是在
matplotlib . pyplot 中 ,所 以通常会在导入 matplotlib . pyplot 时设置一个简短的别名 , 以
方便输入。 例如,我们可把别名取为 pit:

Matplotlib 给图的主要功能是给制 x 、 y 坐标图 。绘 图时,我们需要把 x 、 y 坐标
保存在列表变量中并传给 Matplotlib 。 例如,我们要给制 6 个点 :

x 坐标的列表及 y 坐标的列表的元素数目必须相同,否则执行时会产生“x and y
must have same first dimen s ion ,, 的错误 。
matplotlib . pyplot 绘制线图的方法为 plot ,语法为 :

例如,我们要用 li stx 及 Ii sty 的列表进行绘图 :

绘图后如果不会自动显示,可用 s how 方法显示,例如:

import matplotlib.pyplot as plt

listx = [1,5,7,9,13,16]
listy = [15,50,80,40,70,50]
plt.plot(listx, listy, color ="red")
plt.show()

plot 方法的参数及图形设置
matplotlib.pyplot 的 plot 方法,除了 x 坐标列表及 y 坐标列表为必需的参数外,
还有数十个可选参数可用于设置绘图特性,下面是 4 个常用可选参数:

例如,给制红色、虚线、线宽为 5 、图形名称为 food 的线形图:

设置好属性后 ,执行 legend 方法进行显示 :

同时绘制多个图形
在同一个坐标系中可以绘制多个图形,我们通常会将所有图形都绘制完成后再
显示。例如我们要给制两个图形 :

如果没有设置线条颜色,系统会自动设置不同颜色 。
圄形设置
图形绘制完成后 , 可对图形做一些设置,如图标题、 x 及 y 坐标轴标题等,这样
可以让图形看起来更直观。
设置图形的标题、 x 坐标轴标题、 y 坐标轴标题的语法分别为 :

如果没有指定 x 坐标及 y 坐标范围,系统会根据数据判断最适合的 x 坐标及 y
坐标范围。我们也可以自行设置 x 、 y 的坐标范围,语法为 :

绘制两个线形图并设置其各个图形属性。

import matplotlib.pyplot as plt

listx1 = [1,5,7,9,13,16]
listy1 = [15,50,80,40,70,50]
plt.plot(listx1, listy1, label="Male")
listx2 = [2,6,8,11,14,16]
listy2 = [10,40,30,50,80,60]
plt.plot(listx2, listy2, color="red", linewidth=5.0, linestyle="--", label="Female")
plt.legend()
plt.xlim(0, 20)
plt.ylim(0, 100)
plt.title("Pocket Money")
plt.xlabel("Age")
plt.ylabel("Money")
plt.show()

在 Matplotlib 中显示中文
Matplotlib 默认无法显示中文,所以在前面的例子中各种标题及图例使用的都是
英文。若想在 Matplotlib 显示中文,只需将其默认使用的字体更改为简体中文即可。
更换字体的操作方法有两种:

在自己python的安装路径中找到:

这种设置是永久性的。修改后建议把集成开发工具重启加载一下。

以上操作可能还存在一些问题,更为详细的的做法请参考这个链接:https://www.cnblogs.com/tszr/p/11228013.html

绘制柱状图及饼图
Matplotlib 除了可绘制线图外,还可绘制柱状图或饼图。
柱状图的绘制是通过 bar 方法来实现的,其语法为 :

绘制柱状图的参数与绘制线形图类似,除了一些线 的 属性参数(如线宽、线样
式等〉不能使用外,其余参数在绘制柱状图时都可以使用。
下例与前面的例子相同 , 只是现在我们用柱状图来呈现, 并用中文显示各项文字。
import matplotlib.pyplot as plt

from pylab import rcParams

rcParams["font.sans-serif"]=["SimHei"]

listx1 = [1,5,7,9,13,16]
listy1 = [15,50,80,40,70,50]
plt.bar(listx1, listy1, label="男性")
listx2 = [2,6,8,11,14,16]
listy2 = [10,40,30,50,80,60]
plt.bar(listx2, listy2, color="red", label="女性")
plt.legend()
plt.xlim(0, 20)
plt.ylim(0, 100)
plt.title("零花钱统计")
plt.xlabel("年龄")
plt.ylabel("零花钱数量")
plt.show()

饼图是用 pi e 方法来绘制的,其语法为 :


饼图的展示效果虽然不错,但仅适合少量数据的呈现,若将圆饼图分块太多,
那么比例太小的数据就会看不清楚 。

import matplotlib.pyplot as plt

labels = ["东部", "南部", "北部", "中部"]
sizes = [5, 10, 20, 15]
colors = ["red", "green", "blue", "yellow"]
explode = (0, 0, 0.05, 0)
plt.pie(sizes,explode = explode,labels = labels,colors = colors,labeldistance = 1.1,autopct = "%3.1f%%",shadow = True,startangle = 90,pctdistance = 0.6)
plt.axis("equal")
plt.legend()
plt.show()

 

吴裕雄--天生自然python学习笔记:Matplotlib 基本绘图的更多相关文章

  1. 吴裕雄--天生自然python学习笔记:python 用pyInstaller模块打包文件

    要想在没有安装 Python 集成环境的电脑上运行开发的 Python 程序,必须把 Python 文件打包成 .exe 格式的可执行 文件. Python 的打包工作 PyInstaller 提供了 ...

  2. 吴裕雄--天生自然python学习笔记:python 文件批量查找

    在多个文本文件中查找 我们首先来学习文本文件的查找字符 . 我们通过 os.walk 扩大查找范围, 查找指定目录和子目录下的文件. 应用程序总览 读取 当 前目录及子目录下的所有 PY 和 txt ...

  3. 吴裕雄--天生自然python学习笔记:pandas模块强大的数据处理套件

    用 Python 进行数据分析处理,其中最炫酷的就属 Pa ndas 套件了 . 比如,如果我 们通过 Requests 及 Beautifulsoup 来抓取网页中的表格数据 , 需要进行较复 杂的 ...

  4. 吴裕雄--天生自然python学习笔记:python 用pygame模块动画一让图片动起来

    动画是游戏开发中不可或缺的要素,游戏中的角色只有动起来才会拥有“生命”, 但动画处理也是最让游戏开发者头痛的部分.Pygame 包通过不断重新绘制绘图窗口,短短几行代码就可以让图片动起来! 动画处理程 ...

  5. 吴裕雄--天生自然python学习笔记:python 用pygame模块游戏开发

    游戏开发在软件开发领域占据了非常重要的位直.游 戏开发需要用到的技术相当广泛,除了多媒体.图片.动 画的处理外,程序设计更是游戏开发的核心内容. Py game 是为了让 Python 能够进行游戏开 ...

  6. 吴裕雄--天生自然python学习笔记:python 用pygame模块处理音频文件

    除了对图片. Word 等普通格式的文件进行处理外, Python 还有强大的多媒体文件操作能力,如对音频.视频 文件的操作 . 如果要播放音乐,我们可以用 pygame 包中的 mixer 对 象. ...

  7. 吴裕雄--天生自然python学习笔记:python 文件批量处理

    Python 在文件处理方面表现突出,关于文件的处理 也是很多人经常用到的功能. 对 Python 的文件处理的技巧进行综合应用,比如把大量文件 的复制.按指定的文件名进行保存.找出重复的照片.将 所 ...

  8. 吴裕雄--天生自然python学习笔记:python 建立 Firebase 数据库连接

    Python 程序通过 python-firebase 包可以存取 Firebase 数据库. 使用 python-firebase 包 首先必须安装 python-firebase 包,安装方法如下 ...

  9. 吴裕雄--天生自然python学习笔记:python 创建和操作Firebase实时数据库

    Fire base 是专为移动开发提供的后端服务平台, Firebase 数据库与传统数据库不同,它不是用数据表来存储数据, 而是用 Key . Value 的字典型结构来存储数据,所以它不仅 是轻量 ...

随机推荐

  1. 从认证到调度,K8s 集群上运行的小程序到底经历了什么?

    导读:不知道大家有没有意识到一个现实:大部分时候,我们已经不像以前一样,通过命令行,或者可视窗口来使用一个系统了. 前言 现在我们上微博.或者网购,操作的其实不是眼前这台设备,而是一个又一个集群.通常 ...

  2. 浅谈tcp协议

    tcp协议     三次握手四次挥手                 优点: 稳定,可靠   应用:发邮件                 缺点: 有延迟 占用系统资源多               ...

  3. es和数据库关系对比

    es类比传统关系型数据库:   Relational DB -> Databases -> Tables -> Rows -> Columns Elasticsearch -& ...

  4. Python—程序设计:抽象工厂模式

    抽象工厂模式 内容:定义一个工厂类接口,让工厂子类来创建一系列相关或相互依赖的对象. 例:生产一部手机,需要手机壳.CPU.操作系统三类对象进行组装,其中每类对象都有不同的种类.对每个具体工厂,分别生 ...

  5. Thread--线程间通信--管道

    在Java语言中提供了各种各样的输入/输出流Stream,使我们能够方便的对数据进行操作,其中管道流是一种特殊的流,用于在不同线程间直接传送数据.一个线程发送数据到输出管道,另一个线程从输入管道中读数 ...

  6. 饭卡(DP)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额. 如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大 ...

  7. 浅谈对RabbitMQ的认识

    一.什么是消息队列?什么时候使用它? 在传统的web架构中(此处特指Java SSM架构),用户在web中进行了某项需要和后台产生交互的操作后,一般都要开启一个session,从view层开始,由co ...

  8. Android巩固之事件分发机制

    https://www.cnblogs.com/liaojie970/p/5869152.html onTouchEvent是真正用来进行业务逻辑处理的地方,返回true表示已经将该事件消费,返回fa ...

  9. 用c语言实现的几个小项目

    1.参考:Linux系统编程 2.参考:制作简单计算器 3.参考:制作2048小游戏 4.参考:五子棋实现

  10. 关于PIL库Image模块的一些测试代码

    为了加深理解,写了一些代码测试,在这里记录一下吧: 关于图片的模式问题,之前做过笔记,有“1”,“L”,"P","RGB","RGBA",& ...