matplotlib基础知识

matpltlib中的基本图表包括的元素

1.x轴和y轴:水平和垂直的轴线

2.x轴和y轴的刻度:刻度标识坐标值的分隔,包括最小刻度和最大刻度

3.x轴和y轴刻度:表示特定坐标轴的值

4.绘图区域:实际绘图的区域

绘制单一曲线的图

代码如下

import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np

x = np.linspace(0,2*np.pi,50) #,定义自变量的取值,并返回把范围分成50份

y = np.sin(x)

plt.plot(x,y)

sin(x)cos(x)

绘制多条曲线的图

x = np.linspace(0,2*np.pi,50) #定义自变量的取值,并返回把范围分成50份
y = np.sin(x)
y2 = np.cos(x)
plt.plot(x,y)                  #自变量相同
plt.plot(x,y2)

绘制多条曲线也可以在plot()函数中添加多对x,y值

plt.plot(x,y,x,np.cos(x))

[<matplotlib.lines.Line2D at 0x104ac898>,<matplotlib.lines.Line2D at 0x104ac9e8>]看返回结果可知道,返回值其实是一个列表

添加网格线
plt.grid()

plt.plot(x,y,x,np.cos(x))
plt.grid()
plt.savefig("./image/grid.jpg")

视图中添加子视图

fig=plt.figure(figsize=(12,3))              #设置子视图的尺寸
axes = fig.add_subplot(1,2,1)           #根据面向对象的思想创建子视图对象,指定子视图在视图中的位置,添加子视图为一行,两列,第一个
axes.plot(x,y)                                    #画出子视图
axes.grid()
axes = fig.add_subplot(1,2,2)           #添加子视图为一行两列,第二个
axes.plot(x,y)
axes.grid(color ="red",alpha =1.0,linestyle = "-.",linewidth = 0.5)                  #视图中附带网格线,并设置网格线的颜色,线的明暗程度,线宽。
plt.savefig("./image/fen.jpg")            #保存视图

设置坐标轴界限坐标轴界限

axis():获取或设置某些轴属性的方便方法。

参数:

pro =['on','off','equal','scaled','tight','auto','normal','image','square']

添加方式:plt.axis(pro[2])

设置横纵坐标的范围,是一个列表很纵坐标相等

如:

x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
plt.xlim([-1,7])
plt.ylim([-1,1])

坐标轴标签

xlable方法和ylable方法

如:plt.xlabel('X',fontsize=25,color='red')                                                 #fontsize设置标签字体大小,color设置字体颜色

plt.ylabel("f(x)=sin(x)",fontsize = 25,color="green",rotation=90)       #rotation设置标签旋转的角度

title()设置图形标题

plt.title("正弦波sin",fontproperties="KaiTi",fontsize=25)                     #fontproperties设置字体样式

设置全局字体

from matplotlib.pyplot import rcParams
rcParams["font.sans-serif"]="KaiTi"                   #对全局的字体进行设置

rcParams["axes.unicode_minus"]=False            #对符号进行设值,不设置显示方框

图例:两种方法

1.【推荐使用】在plot函数中增加label参数,在legend方法中传入字符串列表

如:plt.plot(x, x*3.0, label='Fast')

plt.plot(x, x/3.0, label='Slow')

plt.legend()

2.legend方法中传入字符串列表

如:plt.plot(x,np.sin(x),x,np.cos(x))

plt.legend(["sin","cos"])

#属性  loc设置图例位置,若给定元祖,则设置图例在整个视图中的位置

ncol设置图例样式(1代表纵向(默认),2代表横向)

所有的字体样式对照:

保存图片

figure.savefig()

参数:dpi:图形分辨率

facecolor()图像的背景色,默认为w(白色)

如:给子视图添加背景颜色:plt.subplot(1,1,1,facecolor = "#f7f7f7")

给主视图添加背景颜色:plt.savefig("./image/label2.jpg",dpi= 300,facecolor="green")

 设置plot的样式风格

plot语句中支持除了X,Y以外的参数,以字符串形式存在,来控制颜色,线型,点型等要素

语法格式:plt.plot(X,Y,"format",.....)

①.设置颜色:color或c           可以是颜色英文名,也可以是十六进制数

如:plt.plot(x,np.sin(x),color =np.random.rand(3)),让随机添加颜色

②.透明度设置:alpha          是一个小于1的浮点数,设置线型的颜色深浅

③.线型:linestyle或ls

④.线宽:linewidth           设置线型的宽度

如:plt.plot(x,np.sin(x),color ="red",alpha =1,ls = "steps",linewidth = 2 )

⑤.不同宽度的破折线:dashes      用来设置破折线的各段的宽度

如:plt.plot(x,np.cos(x),dashes = [5,3])                   #线段和空格的比例为5:3

⑥.点型:marker               给图像线型上添加点,

点的样式

marker的属性

如:

plt.plot(x,x**(1/2),marker= "*",markersize=10,markerfacecolor ="red",markeredgecolor = "y")

多个曲线不同属性设置方式(三种)

1.多个都进行设置时,无需声名属性plt.plot(x1,y1,fmt,x2,y2,fmt2......)

如:

x = np.linspace(0.1,10,10)
plt.plot(x,x**(2),"r*-.",x,1/x,"go:")            #属性可以连用

2.对实例使用一系列的setter方法

x = np.linspace(-2,2,100000)
line, = plt.plot(x,((np.cos(x)**(1/2))*np.cos(200*x)+(abs(x)**(1/2))-1)*(4-x**3)**0.01)
line.set_linestyle(":")
line.set_color("black")

 

3.使用setp()方法进行属性设置

x = np.linspace(-2,2,100000)
line, = plt.plot(x,((np.cos(x)**(1/2))*np.cos(200*x)+(abs(x)**(1/2))-1)*(4-x**3)**0.01)
plt.setp(line,color = "r",alpha = 0.6,ls = "-.")

 

自定义x,y坐标刻度

1.xticks()和yticks()方法

x = np.linspace(0,2*np.pi,100)
line, = plt.plot(x,np.sin(x))

#对坐标刻度进行自定义设置,第一个列表为正常的显示值,第二个列表为想设置成的样式
plt.yticks([-1,0,1],["min",0,"max"],fontsize = 18,color = "red",rotation =60)  
plt.xticks(np.arange(0,2*np.pi+0.01,np.pi/2),[0,"$\pi$/2","$\pi$","3$\pi$/2","2$\pi$"],fontsize = 18,color = "r")

#注意pi的输入样式:“$\pi$”

matlplotlib绘图(二)的更多相关文章

  1. c#使用GDI+简单绘图(二)

    // Create the in-memory bitmap where you will draw the image. // This bitmap is 300 pixels wide and ...

  2. HTML5之Canvas绘图(二) ——应用篇之七巧板

    1.canvas绘制七巧板-- <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  3. Winform GDI+绘图二:绘制旋转太极图

    大家好,今天有时间给大家带来Winform自绘控件的第二部分,也是比较有意思的一个控件:旋转太极图. 大家可以停下思考一下,如果让你来绘制旋转的太极图,大家有什么样的思路呢?我今天跟大家展示一下,我平 ...

  4. Matlab绘图详解

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  5. Matlab绘图(一二三维)

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  6. Matlab绘图-很详细,很全面

    强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到 所需图形,这类函数称为高层绘图函数.此外,Matlab还提供 ...

  7. 2019-04-15 Python之利用matplotlib和numpy的简单绘图

    环境:win10家庭版, Anocada的 Spyder 一.简单使用 使用函数 plt.polt(x,y,label,color,width) 根据x,y 数组 绘制直,曲线 import nump ...

  8. matlab绘图(详细)(全面)

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  9. Matlab 绘图完整入门

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

随机推荐

  1. 微信小程序之登录

    微信小程序登录基本流程就是 1. wx.login获取js_code 根据app_id, secret, js_code 数据 wx.request 获取用户的openid和session_key   ...

  2. jquery获取文档高度和窗口高度汇总

    jquery获取窗口高度和窗口高度,$(document).height().$(window).height() $(document).height():整个网页的文档高度 $(window).h ...

  3. JXl常用解析详解

    目的: java解析 excel 无非就是apache poi 或者 jxl 两者在使用上其实都差不多,关键还是看你自己熟悉那个,用那个!我也是初次接触jxl 看很多博客说 jxl只适用于处理小数据量 ...

  4. python之set集合、深浅拷贝

    一.基本数据类型补充 1,关于int和str在之前的学习中已经介绍了80%以上了,现在再补充一个字符串的基本操作: li = ['李嘉诚','何炅','海峰','刘嘉玲'] s = "_&q ...

  5. Java EE学习笔记(九)

    MyBatis的关联映射 1.关联关系概述 1).实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系.针对多表之间的操作,MyBatis提供了关联映射,通 ...

  6. Netty(5)@Sharable

    问题:我写了MyDecoder which extends ByteToMessageDecoder,单线程没问题,但是多线程时,报'the handler should be sharable'.查 ...

  7. Qt5.7中使用MySQL Driver(需要把libmysql.dll文件拷贝到Qt的bin目录中。或者自己编译的时候,链接静态库)

    Qt5.7中使用MySQL Driver 1.使用环境 Qt5.7的安装安装就已经带了MySQL Driver,只需要在安装的时候选择一下即可.如果没有安装,可以采取自己编译的方式.在Qt的源码包的q ...

  8. 【OGG】OGG的单向DML复制配置(一)

    [OGG]OGG的单向DML复制配置(一) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  9. 1550: Simple String 最大流解法

    http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1550 很久以前做的一题,当时队友用最大流做,现在我也是 这个转化为二分图多重匹配,就是一样的意 ...

  10. 基于JAVA的设计模式之适配器模式

    适配器模式概念 适配器模式把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.比如我们突然就想看电影了,但是这个电影是AVI格式的,目前我们开发 ...