Python基础-画图:matplotlib
Python画图主要⽤到matplotlib这个库。具体来说是pylab和pyplot这两个⼦库。这两个库可以满⾜基本的画图需求。
pylab神器:Params.update(params)。这个函数⼏乎可以调节图的⼀切属性,包括但不限于:坐标范围,axes标签字号⼤⼩,xtick,ytick标签字号,图线宽,legend 字号等。
具体参数参看官⽅⽂档:/users/customizing.html
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
1
或者:
from matplotlib.pyplot import *
1.建⽴空⽩图
fig = plt.figure()
也可以指定所建⽴图的⼤⼩
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()
其中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])
效果如下:
2.向空⽩图中添加内容,想你所想,画你所想
⾸先给出⼀组数据:
x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]
A.画散点图*
plt.show()
效果如下:
这⾥的参数意义:
matplotlib中subplot1. x为横坐标向量,y为纵坐标向量,x,y的长度必须⼀致。
2. 控制颜⾊:color为散点的颜⾊标志,常⽤color的表⽰如下:
b---blue  c---cyan  g---green    k----black
m---magenta r---red  w---white    y----yellow
有四种表⽰颜⾊的⽅式:
⽤全名
16进制,如:#FF00FF
灰度强度,如:‘0.7’
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()
效果如下:
这⾥有⼀个新的参数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()
效果如下:
C.扇形图
⽰例:
import matplotlib.pyplot as plt
y = [2.3, 3.4, 1.2, 6.6, 7.0]
plt.figure()
plt.pie(y)
plt.show()
效果如下:
D.柱状图bar
⽰例:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2.3, 3.4, 1.2, 6.6, 7.0]
plt.figure()
plt.bar(x, y)
plt.title("bar")
plt.show()
效果如下:
E.⼆维图形(等⾼线,本地图⽚等)import matplotlib.pyplot as plt
import numpy as np
import matplotlib.image as mpimg

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。