设为首页 加入收藏

TOP

Python绘图库matplotlib基础教程(一)
2019-03-27 22:08:20 】 浏览:152
Tags:Python 图库 matplotlib 基础 教程

pylab神器:pylab.rcParams.update(params)。这个函数几乎可以调节图的一切属性,包括但不限于:坐标范围,axes标签字号大小,xtick,ytick标签字号,图线宽,legend字号等。


scatter和 plot 函数的不同之处


scatter才是离散点的绘制程序,plot准确来说是绘制线图的,当然也可以画离散点。


scatter/scatter3做散点的能力更强,因为他可以对散点进行单独设置
所以消耗也比plot/plot3大
所以如果每个散点都是一致的时候,还是用plot/plot3好以下
如果要做一些plot没法完成的事情那就只能用scatter了


scatter强大,但是较慢。所以如果你只是做实例中的图,plot足够了。


 plt.ion()用于连续显示。
# plot the real data
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x_data, y_data)
plt.ion()#本次运行请注释,全局运行不要注释
plt.show()


首先在python中使用任何第三方库时,都必须先将其引入。即:


import matplotlib.pyplot as plt


或者:


from matplotlib.pyplot import *


1.建立空白图


fig = plt.figure()


Python绘图库matplotlib基础教程


也可以指定所建立图的大小
fig = plt.figure(figsize=(4,2))


也可以建立一个包含多个子图的图,使用语句:
plt.figure(figsize=(12,6))
plt.subplot(231)
plt.subplot(232)
plt.subplot(233)
plt.subplot(234)
plt.subplot(235)
plt.subplot(236)
plt.show()


Python绘图库matplotlib基础教程


其中subplot()函数中的三个数字,第一个表示Y轴方向的子图个数,第二个表示X轴方向的子图个数,第三个则表示当前要画图的焦点。


当然上述写法并不是唯一的,比如我们也可以这样写:
fig = plt.figure(figsize=(6, 6))
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
plt.show()


plt.subplot(111)和plt.subplot(1,1,1)是等价的。意思是将区域分成1行1列,当前画的是第一个图(排序由行至列)。


plt.subplot(211)意思就是将区域分成2行1列,当前画的是第一个图(第一行,第一列)。以此类推,只要不超过10,逗号就可省去。


可以看到图中的x,y轴坐标都是从0到1,当然有时候我们需要其他的坐标起始值。
此时可以使用语句指定:
ax1.axis([-1, 1, -1, 1])


或者:
plt.axis([-1, 1, -1, 1])


效果如下:


Python绘图库matplotlib基础教程


2.向空白图中添加内容,想你所想,画你所想


首先给出一组数据:
x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]


A.画散点图*
plt.scatter(x, y, color='r', marker='+')
plt.show()


效果如下:


Python绘图库matplotlib基础教程


这里的参数意义:
1.x为横坐标向量,y为纵坐标向量,x,y的长度必须一致。


2.控制颜色:color为散点的颜色标志,常用color的表示如下:


b---blue  c---cyan  g---green    k----black
m---magenta r---red  w---white    y----yellow


有四种表示颜色的方式:



3.控制标记风格:marker为散点的标记,标记风格有多种:
.  Point marker
,  Pixel marker
o  Circle marker
v  Triangle down marker
^  Triangle up marker
<  Triangle left marker
>  Triangle right marker
1  Tripod down marker
2  Tripod up marker
3  Tripod left marker
4  Tripod right marker
s  Square marker
p  Pentagon marker
*  Star marker
h  Hexagon marker
H  Rotated hexagon D Diamond marker
d  Thin diamond marker
| Vertical line (vlinesymbol) marker
_  Horizontal line (hline symbol) marker
+  Plus marker
x  Cross (x) marker


B.函数图(折线图)


数据还是上面的。


fig = plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.plot(x, y, color='r', linestyle='-')
plt.subplot(122)
plt.plot(x, y, color='r', linestyle='--')
plt.show()


效果如下:


Python绘图库matplotlib基础教程


这里有一个新的参数linestyle,控制的是线型的格式:符号和线型之间的对应关系


-      实线
--    短线
-.    短点相间线
:    虚点线


另外除了给出数据画图之外,我们也可以利用函数表达式进行画图,例如:y=sin(x)


from math import *
from numpy import *
x = arange(-math.pi, math.pi, 0.01)
y = [sin(xx) for xx in x]
plt.figure()
plt.plot(x, y, color='r', linestyle='-.')
plt.show()


效果如下:


Python绘图库matplotlib基础教程


C、二维图形(等高线,本地图片等)


import matplotlib.pyplot as plt
import numpy as np
import matplotlib.image as mpimg
# 2D data


# read image


效果图:


Python绘图库matplotlib基础教程


D、对所画图进行补充


import matplotlib.pyplot as plt
from math import *
from numpy import *
x = arange(-math.pi, math.pi, 0.01)
y = [sin(xx) for xx in x]
plt.figure()
plt.plot(x, y, color='r', linestyle='-')
plt.xlabel(u'X')#fill the meaning of X axis
plt.ylabel(u'Sin(X)')#fill the meaning of Y axis
plt.title(u'sin(x)')#add the title of the figure


plt.show()


效果图:


Python绘图库matplotlib基础教程


画网络图,要用到networkx这个库,下面给出一个实例:


i

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用Python turtle画表白分形树 下一篇Python基础教程 - matplotlib实现..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目