matplotlib画图代码,matplotlib绘制图形

  matplotlib画图代码,matplotlib绘制图形

  PythonMatplotlib包可以绘制各种图形,功能非常齐全。下面文章主要介绍用matplotlib进行Python绘图和设置的相关信息,通过示例代码详细介绍。有需要的朋友可以参考一下。

  00-1010一、了解matplotlib.pyplot1、画一个像2。设置图像尺寸3。保存图像文件4。设置X,Y轴刻度范围5。添加描述信息(标题、轴标签)6。设置显示中文(导入字体模块)7。绘制网格2。设置通用绘图属性1。制图符号(制作者)2。线条样式)3。颜色缩写(颜色)4。Windows字体的中英文名称通过比较面向对象绘图配置对象的属性绘制多个子图3、Artist对象Artist对象绘制过程设置Artist属性一些例子Figure容器轴容器轴比例设置汇总# matplotlib提供了一个快速绘图模块pyplot,模仿了MATLAB的一些功能,

  将matplotlib.pyplot导入为plt #导入绘图模块

  从matplotlib导入pyplot as PLT #有两种导入方法。

  第一部分的简化版摘要:

  画一个折线图(plt.plot),设置图片大小和分辨率(plt。FIG)、本地保存图片(plt.savefig)、设置xy轴刻度和字符串(xticks、yticks)、设置标题、Xylable、YLABLE、设置字体(font_manager.fontProperties、Matplotlib.rc)在同一个图片中绘制多条线(plt multiple plots)添加图例并绘制其他图像类型的网格(散点图plt.scatter、条形图plt.bar、水平plt.barh、直方图PLT . hist(bin . width group distance、多少组num_bins,))

  

目录

 

  准备图纸数据和输入参数。可以用plt.plot(参数)和plt.show()一键出图!

  将matplotlib.pyplot作为plt导入

  x=[.]

  y=[.]

  Plt.plot(x,y,label= legend) #绘图,并标记图例。

  Plt.show() #显示

  Plot.legend(prop=my_font) #设置显示图例,括号表示显示中文(后面解释)

  

一、初识matplotlib.pyplot

 

  plt.plot()的参数设置:

  color= line color line style= line style线宽=线宽alpha=0.5透明度(对照表见常用绘图属性设置表)。举个例子:假设一天中每两个小时(范围(2,26,2))的温度()为[15,13,14.5,17,20,]

  sh:py;">import matplotlib.pyplot as plt

  x = range(2,26,2)

  y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

  # 绘图

  plt.plot(x,y)

  # 显示

  plt.show()

  绘制出如下图片:

  

 

  

 

  

2.设置图片大小

 

  在绘制图片之前,使用plt.figure函数设置图片大小,其中figsize为元组,分别代表长宽,dpi(Dot Per Inch)为分辨率表示的单位之一。

  

plt.figure(figsize=(20,8),dpi=150)#图片大小为20*8,每英寸150个像素点

 

  

 

  

 

  

3.保存图片文件

 

  

plt.savefig("./t1.png") #将图片保存到本地

 

  

 

  引号里为文件路径和文件名( ./ 代表当前路径,png为文件后缀/格式)

  

 

  

4.设置X,Y轴刻度范围

 

  设置x,y轴的范围可以使用多种方法

  

plt.xticks(x)        # 将x里的值作为刻度

 

  

_xticks_lables = [i/2 for i in range(4,49)]                # 生成更复杂的数列

 

  自定义刻度内容

  

_x =list(x) [::3]

 

  

 

  

5.添加描述信息(标题、轴标签)

 

  

plt.title("折线图")    #设置标题

 

  

 

  

6.设置显示中文(导入字体模块)

 

  

from matplotlib import font_manager        #导入字体管理模块

 

  

 

  

7.绘制网格

 

  

plt.grid(alpha=0.4)

 

  绘制一个温度随时间变化的折线图实例

  

import matplotlib.pyplot as plt

 

  

 

  

 

  

二、常见绘图属性设置

 

  

 

  

1.绘图符号(Makers)

 

  符号

  中文说明

  英文说明

  '.'

  圆点

  point marker

  ','

  像素点

  pixel marker

  'o'

  圆圈

  circle marker

  'v'

  向下三角形

  triangle_down marker

  '^'

  向上三角形

  triangle_up marker

  '<'

  向左三角形

  triangle_left marker

  '>'

  向右三角形

  triangle_right marker

  '1'

  向下Y形

  tri_down marker

  '2'

  向上Y形

  tri_up marker

  '3'

  向左Y形

  tri_left marker

  '4'

  向右Y形

  tri_right marker

  's'

  方形

  square marker

  'p'

  五边形

  pentagon marker

  '*'

  星形

  star marker

  'h'

  六角形1

  hexagon1 marker

  'H'

  六角形2

  hexagon2 marker

  '+'

  加号

  plus marker

  'x'

  叉号

  x marker

  'D'

  钻石形

  diamond marker

  'd'

  钻石形(小)

  thin_diamond marker

  ''

  竖线

  vline marker

  '_'

  横线

  hline marker

  

  

 

  

2.线型(Line Styles)

 

  符号

  中文说明

  英文说明

  '-'

  实线

  solid line style

  '--'

  虚线

  dashed line style

  '-.'

  点划线

  dash-dot line style

  ':'

  点线

  dotted line style

  

  

 

  

3.颜色缩写(Colors)

 

  多种丰富的颜色对照代码参见:RGB颜色值与十六进制颜色码转换工具 (sioe.cn)

  符号

  中文说明

  英文说明

  'b'

  蓝

  blue

  'g'

  绿

  green

  'r'

  红

  red

  'c'

  青

  cyan

  'm'

  紫

  magenta

  'y'

  黄

  yellow

  'k'

  黑

  black

  'w'

  白

  white

  

  

 

  

4.Windows字体中英文名称对照

 

  中文名称

  英文名称

  黑体

  SimHei

  微软雅黑

  Microsoft YaHei

  微软正黑体

  Microsoft JhengHei

  新宋体

  NSimSun

  新细明体

  PMingLiU

  细明体

  MingLiU

  标楷体

  DFKai-SB

  仿宋

  FangSong

  楷体

  KaiTi

  仿宋_GB2312

  FangSong_GB2312

  楷体_GB2312

  KaiTi_GB2312

  

  

 

  

面向对象方式绘图

 

  

  • matplotlib是一套面向对象的绘图库,图中的所有部件都是python对象。

  • pyplot是matplotlib仿照MATLAB提供的一套快速绘图API,它并不是matplotlib本体。

  • pyplot虽然用起来简单快捷,但它隐藏了大量的细节,不能使用一些高级功能。

  • pyplot模块内部保存了当前图表和当前子图等信息,可以分别用gcf()和gca()获得这两个对象:

    • plt.gcf(): "Get current figure"获取当前图表(Figure对象)

    • plt.gca(): "Get current figure"获取当前子图(Axes对象)

  • pyplot中的各种绘图函数,实际上是在内部调用gca获取当前Axes对象,然后调用Axes的方法完成绘图的。

 

  

import matplotlib.pyplot as plt

 

  

 

  

配置对象的属性

 

  matplotlib所绘制的图表的每一部分都对应一个对象,有两种方式设置这些对象的属性:

  通过对象的set_*()方法设置。

  通过pyplot的setp()方法设置。

  同样也有两种方法查看对象的属性:

  通过对象的get_*()方法查看。

  通过pyplot的getp()方法查看。

  

import matplotlib.pyplot as plt

 

  

 

  

 

  

import numpy as np

 

  

 

  

绘制多个子图

 

  在matplotlib中,一个Figure对象可以包括多个Axes对象(也就是子图),一个Axes代表一个绘图区域。最简单的多子图绘制方式是使用pyplot的subplot函数。

  subplot(numRows, numCols, plotNum)接受三个参数:

  numRows:子图行数

  numCols:子图列数

  plotNum:第几个子图(按从左到右,从上到下的顺序编号)

  

import matplotlib.pyplot as plt

 

  

 

  

 

  

 

  

 

  

三、Artist对象

 

  简单类型Artist对象是标准的绘图元件,例如Line2D,Rectangle,Text,AxesImage等

  容器类型Artist对象包含多个Artist对象使他们组织成一个整体例如Axis,Axes,Figure对象

  

 

  

 

  

Artist对象进行绘图的流程

 

  

  • 创建Figure对象

  • 为Figure对象创建一个或多个Axes对象

  • 调用Axes对象的方法来创建各种简单的Artist对象

 

  

import matplotlib.pyplot as plt

 

  

 

  

 

  

设置Artist属性

 

  get_* 和 set_* 函数进行读写fig.set_alpha(0.5*fig.get_alpha())

  Artist 属性

  作用

  alpha

  透明度,值在0到1之间,0为完全透明,1为完全不透明

  animated

  布尔值,在绘制动画效果时使用

  axes

  此Artist对象所在的Axes对象,可能为None

  clip_box

  对象的裁剪框

  clip_on

  是否裁剪

  clip_path

  裁剪的路径

  contains

  判断指定点是否在对象上的函数

  figure

  所在的Figure对象,可能为None

  label

  文本标签

  picker

  控制Artist对象选取

  transform

  控制偏移旋转

  visible

  是否可见

  zorder

  控制绘图顺序

  

  

 

  

一些例子

 

  

import matplotlib.pyplot as plt

 

  

  

 

  

import matplotlib.pyplot as plt

 

  

  

 

  

 

  

Figure容器

 

  最上层的Artist对象是Figure,包含组成图表的所有元素

  Figure可以包涵多个Axes(多个图表),创建主要有三种方法:

  

  • axes=fig.add_axes([left, bottom, width, height])

  • fig, axes =plt.subplots(行数,列数)

  • axes=fig.add_subplot(行数,列数,序号)

 

  

Figure 属性

  说明

  axes

  Axes对象列表

  patch

  作为背景的Rectangle对象

  images

  FigureImage对象列表,用来显示图片

  legends

  Legend对象列表

  lines

  Line2D对象列表

  patches

  patch对象列表

  texts

  Text对象列表,用来显示文字

  

  

import matplotlib.pyplot as plt

 

  

 

  

 

  

  

 

  

 

  

Axes容器

 

  

  • 图像的区域,有数据空间(标记为内部蓝色框)

  • 图形可以包含多个 Axes,轴对象只能包含一个图形

  • Axes 包含两个(或三个)Axis对象,负责数据限制

  • 每个轴都有一个标题(通过set_title()设置)、一个x标签(通过set_xLabel()设置)和一个通过set_yLabel()设置的y标签集。

 

  Axes 属性

  说明

  artists

  A list of Artist instances

  patch

  Rectangle instance for Axes background

  collections

  A list of Collection instances

  images

  A list of AxesImage

  legends

  A list of Legend instances

  lines

  A list of Line2D instances

  patches

  A list of Patch instances

  texts

  A list of Text instances

  xaxis

  matplotlib.axis.XAxis instance

  yaxis

  matplotlib.axis.YAxis instance

  

  Axes的方法(Helper method)

  所创建的对象(Artist )

  添加进的列表(Container)

  ax.annotate - text annotations

  Annotate

  ax.texts

  ax.bar - bar charts

  Rectangle

  ax.patches

  ax.errorbar - error bar plots

  Line2D and Rectangle

  ax.lines and ax.patches

  ax.fill - shared area

  Polygon

  ax.patches

  ax.hist - histograms

  Rectangle

  ax.patches

  ax.imshow - image data

  AxesImage

  ax.images

  ax.legend - axes legends

  Legend

  ax.legends

  ax.plot - xy plots

  Line2D

  ax.lines

  ax.scatter - scatter charts

  PolygonCollection

  ax.collections

  ax.text - text

  Text

  ax.texts

  

  subplot2grid函数进行更复杂的布局。subplot2grid(shape, loc, rowspan=1, colspan=1, **kwargs)

  

  • shape为表示表格形状的元组(行数,列数)

  • loc为子图左上角所在的坐标元组(行,列)

  • rowspan和colspan分别为子图所占据的行数和列数

 

  

import matplotlib.pyplot as plt

 

  

 

  坐标轴上的刻度线、刻度文本、坐标网格及坐标轴标题等

  set_major_* set_minor_*

  get_major_* get_minor_*

  

import numpy as np

 

  

  

 

  

 

  

坐标轴刻度设置

 

  matplotlib会按照用户所绘制的图的数据范围自动计算,但有的时候也需要我们自定义。

  我们有时候希望将坐标轴的文字改为我们希望的样子,比如特殊符号,年月日等。

  

# 修改坐标轴刻度的例子

 

  

 

  

import datetime

 

  

  

 

  如果数据中本来就有时间日期信息,可以使用strptime和strftime直接转换。

  使用strptime函数将字符串转换为time,使用strftime将time转换为字符串。

  python中的时间日期格式化符号:

  符号

  意义

  %y

  两位数的年份表示(00-99)

  %Y

  四位数的年份表示(000-9999)

  %m

  月份(01-12)

  %d

  月内中的一天(0-31)

  %H

  24小时制小时数(0-23)

  %I

  12小时制小时数(01-12)

  %M

  分钟数(00=59)

  %S

  秒(00-59)

  %a

  本地简化星期名称

  %A

  本地完整星期名称

  %b

  本地简化的月份名称

  %B

  本地完整的月份名称

  %c

  本地相应的日期表示和时间表示

  %j

  年内的一天(001-366)

  %p

  本地A.M.或P.M.的等价符

  %U

  一年中的星期数(00-53)星期天为星期的开始

  %w

  星期(0-6),星期天为星期的开始

  %W

  一年中的星期数(00-53)星期一为星期的开始

  %x

  本地相应的日期表示

  %X

  本地相应的时间表示

  %Z

  当前时区的名称

  %%

  %号本身

  

  

 

  

总结

 

  到此这篇关于python使用Matplotlib绘图及设置的文章就介绍到这了,更多相关pythonMatplotlib绘图设置内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: