十分钟快速学会Matplotlib基本图形操作

在学习Python的各种工具包的时候,看网上的各种教程总是感觉各种方法很多很杂,参数的种类和个数也十分的多,理解起来需要花费不少的时间。

所以我在这里通过几个例子,对方法和每个参数都进行详细的解释,这样对于0基础的人也可以快速的掌握Matplotlib基本图形操作。

  • 首先导入numpy和matplotlib包
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline # 使图形可以直接在notebook上显示
  • 首先画一个最基本的图形
plt.plot([1,2,3,4,5],[1,4,9,16,25]) # plot方法是绘制图形,第一个参数是x轴的值,第二个参数是对应的y轴的值
plt.xlabel(‘this is x-axis‘,fontsize = 16) #xlabel是指定x轴的名字 fontsize是指定字体的大小
plt.ylabel(‘this is y-axis‘,fontsize = 16)

  • 不同类型的线条的字符参数;不同颜色的字符参数

  • 给plot方法传入指定的线条和颜色参数
plt.plot([1,2,3,4,5],[1,4,9,16,25],‘gv‘) #其中‘gv’中的g代表green绿色,v代表下三角形
plt.xlabel(‘xlabel‘,fontsize = 16)
plt.ylabel(‘ylabel‘,fontsize = 16)

  • 除了上面这种给参数的方法外,还可以分开来给参数
plt.plot([1,2,3,4,5],[1,4,9,16,25],‘+‘,color=‘r‘) # 其中的‘+’代表加号点,r代表red红色
plt.xlabel(‘xlabel‘,fontsize = 16)
plt.ylabel(‘ylabel‘,fontsize = 16)

  • 下面我们来绘制多条线
tang_numpy = np.arange(0,10,0.5) # 生产从0到10间隔为0.5的等差序列
# 然后连续绘制三条线,调用三次plot方法
plt.plot(tang_numpy,tang_numpy,‘r--‘)
plt.plot(tang_numpy,tang_numpy*2,‘bs‘)
plt.plot(tang_numpy,tang_numpy*3,‘go‘)
  • 也可以只使用一次plot方法绘制三条线,得到的结果是一样的
plt.plot(tang_numpy,tang_numpy,‘r--‘,
        tang_numpy,tang_numpy*2,‘bs‘,
        tang_numpy,tang_numpy*3,‘go‘)

  • 接下来绘制一个余弦函数,给定比较多的参数,注释会解释每个参数的作用
x = np.linspace(-10,10) #线条的范围
y = np.sin(x)
# linewidth参数是线条的宽度,color是颜色,linestype是线条的类型,marker是标记的类型,makercolor是标记的颜色,markersize是标记大小,alpha是透明度
plt.plot(x,y,linewidth=5, color=‘b‘,linestyle=‘-‘,marker = ‘o‘,markerfacecolor=‘r‘,markersize = 8,alpha = 0.4)

  • 子图,一个图形中可以由多个子图组合而成,可以吧一整个图看成是一个矩阵,而其中的子图是该矩阵的各个元素
# 211 表示一会要画的图是2行一列的 最后一个1表示的是子图当中的第1个图
plt.subplot(211)
plt.plot(x,y,color=‘r‘)

# 212 表示一会要画的图是2行一列的 最后一个1表示的是子图当中的第2个图
plt.subplot(212)
plt.plot(x,y,color=‘b‘)

# 211 表示一会要画的图是1行2列的 最后一个1表示的是子图当中的第1个图
plt.subplot(121)
plt.plot(x,y,color=‘r‘)

# 212 表示一会要画的图是1行2列的 最后一个1表示的是子图当中的第2个图
plt.subplot(122)
plt.plot(x,y,color=‘b‘)

# 321 表示一会要画的图是3行2列的 最后一个1表示的是子图当中的第1个图
plt.subplot(321)
plt.plot(x,y,color=‘r‘)
# 321 表示一会要画的图是3行2列的 最后一个4表示的是子图当中的第4个图
plt.subplot(324)
plt.plot(x,y,color=‘b‘)

  • 给图加上一些文字注释
plt.plot(x,y,color=‘b‘,linestyle=‘:‘,marker = ‘o‘,markerfacecolor=‘r‘,markersize = 10)
plt.xlabel(‘x:---‘)
plt.ylabel(‘y:---‘)
plt.title(‘this is the title:---‘)
plt.text(0,0,‘this is the text‘) #(0,0)是text的位置
plt.grid(True) #这个是网格
# xy是箭头指向的位置,xytext是注释的位置,arrowprops是指定箭头的属性
plt.annotate(‘tangyudi‘,xy=(-5,0),xytext=(-2,0.3),arrowprops = dict(facecolor=‘red‘,shrink=0.05,headlength= 20,headwidth = 20))

  • 设置图片的风格

x = np.linspace(-10,10)
y = np.sin(x)
plt.style.use(‘dark_background‘) #给图片指定风格
plt.plot(x,y)

  • 绘制柱状图
np.random.seed(0) #设置随机数种子
x = np.arange(5)
y = np.random.randint(-5,5,5)
fig,axes = plt.subplots(ncols = 2) # 有两列的子图
v_bars = axes[0].bar(x,y,color=‘blue‘)  #axes[0]代表第一个子图
h_bars = axes[1].barh(x,y,color=‘red‘)
axes[0].axhline(0,color=‘grey‘,linewidth=2) #加一条横线
axes[1].axvline(0,color=‘grey‘,linewidth=2) #加一条竖线

fig,ax = plt.subplots()
v_bars = ax.bar(x,y,color=‘lightblue‘)
# 让值小于0的柱状颜色为green
for bar,height in zip(v_bars,y):   # bar,height为柱状的高度值
    if height < 0:
        bar.set(edgecolor = ‘darkred‘,color = ‘green‘,linewidth = 3)
ax.axhline(0,color = ‘red‘) # 0的地方加一条水平线

原文地址:https://www.cnblogs.com/nsw0419/p/11618806.html

时间: 2024-11-05 18:33:36

十分钟快速学会Matplotlib基本图形操作的相关文章

[转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!

十分钟快速理解DPI和PPI,不再傻傻分不清! https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for=pc关于UX测试相关的: 之前一直搞的不是很清楚 这个百家号的解释挺好的 简单转帖一下 以后仔细研究,  设计师充电站 18-07-1308:58 72DPI的图片拿去打印会糊吗?手机拍出来的照片是多少DPI?PS里显示72PPI为什么另存为JPG就变成96DPI了? 类似的问题层出不穷.本站很多篇文章都讲到

十分钟快速入门 Python,看完即会,不用收藏!

本文以 Eric Matthes 的<Python编程:从入门到实践>为基础,以有一定其他语言经验的程序员视角,对书中内容提炼总结,化繁为简,将这本书的精髓融合成一篇10分钟能读完的文章. 读完本篇文章后,可对 Python 语言特性.编码风格有一定了解,并可写出简单的 Python 程序. 100?多位经验丰富的开发者参与,在 Github 上获得了近?1000?个?star?的开源项目想了解下吗?项目地址:github.com/cachecats/c- 一.安装与运行 各个系统的 Pyth

Python语言十分钟快速入门

Python(蟒蛇)是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. AD:[51CTO技术沙龙]移动时代数据挖掘和行为分析—让用户数据更精彩! [简介] Python(蟒蛇)是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. python logo [特点] 1 Python使用C语言开发,但是Python不再

带你十分钟快速构建好 SpringBoot + SSM 框架

目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐.而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了大众的青睐 而本文,我将教大家如何在 intellij idea 中快速构建好一个 Maven + Spring + SpringMVC + MyBatis + SpringBoot 的框架,做到了足够精简,让你可以立刻开始你的 web 项目 一. 创建项目 选择 Spring Initialliz

十分钟快速搭建wordpress服务

wordpress服务需要对应的mysql数据库服务,安装wordpress之前需要先搭建好数据库服务.现在都流行基于拉取镜像启动docker容器方式提供服务,因此需要一台能上外网的1核1G的机器,在机器上安装好docker. 1.安装mysql数据库 a. 拉取mysql镜像 docker pull mysql:5.7 b.启动mysql容器服务 docker run --name mysql-db -v /data/mysql:/var/lib/mysql -d -e MYSQL_ROOT_

巨杉Tech | 十分钟快速搭建 Wordpress 博客系统

介绍很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统.而全球使用最广的Wordpress常常被用户用来快速搭建个人博客网站.默认情况下,Wordpress一般在后台使用MySQL关系型数据库存储所有的博文及回复.本文将展示如何使用 SequoiaDB 巨杉分布式数据库替换MySQL,成为Wordpress博客系统的后台关系型数据库. 通过阅读本文,用户可以了解到如何使用SequoiaDB巨杉数据库的MySQL实例无缝替换标准MySQL数据库.SequoiaDB巨杉数据库允许用户在不更

十分钟快速创建 Spring Cloud 项目

一般来说,Intelij IDEA 可以通过 Maven Archetype 来快速生成Maven项目,其实 IDEA 集成了 Spring 官方提供的 Spring Initializr,可以非常方便的创建 Maven 项目,而且能自动生成启动类和单元测试代码. 下面我们学习如何快速搭建一个 Spring Cloud 工程,示例使用 Spring Boot 2.2.2 版本,使用少量的代码,可以在半小时内完成项目的搭建. 本文为新手向教程,帮助大家快速入门 Spring Cloud 开发,也作

如何只花30分钟快速学会Shiro

本篇内容大多总结自张开涛的<跟我学Shiro>原文地址:http://jinnianshilongnian.iteye.com/blog/2018936 我并没有全部看完,只是选择了一部分对我来说急需在项目中使用的知识加以学习.并且对于大多数第一次接触Shiro的同学来说,掌握这些也应该足够了. 一.架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙.Shiro的应用不依赖任何容器,它也可以在JavaSE下使用.但是最常用的环境还是JavaEE.下面以

用Nodejs 十分钟快速编写简单静态文件服务器

学了几天Nodejs 后我又干上了前端的活.这次遇到的问题是,我想在不同的设备上方便的查看我编写的网页,很自然的就想到要是能在本地搭建一个简单的http服务器的话,那局域网内的所有设备都可以访问了,这可是极好的.于是趁热马上动手实现一个简单服务器. 需求:访问http://192.168.1.100/index.html 可以返回指定网页及其涉及的资源(css,js,图片文件等) function start(route, handle) { http.createServer(function