Matplotlib-PyplotTutorial(下)

控制线条的属性

  • linewidth 线宽
  • dash style 折角样式
  • antialiased 反锯齿
  • ...
line, = plt.plot([1,2,3], [2,3,7],'-', linewidth=2.0)
line.set_antialiased(False)  # 关闭反锯齿
plt.show()

result:
Matplotlib-PyplotTutorial(下)_第1张图片

设置线条属性:setp()

lines = plt.plot([1,2,3], [2,3,7])
# 关键字参数
plt.setp(lines, color='r', linewidth=2.0)
# 或 MATLAB 样式的 '键值对'
plt.setp(lines, 'color', 'r', 'linewidth', 2.0)
plt.show()

result:
Matplotlib-PyplotTutorial(下)_第2张图片

可设置的所有属性:

properties values
alpha float
animated [True | False]
antialiased or aa [True | False]
clip_box a matplotlib.transform.Bbox instance
clip_on [True | False]
clip_path a Path instance and a Transform instance, a Patch
color or c any matplotlib color
contains the hit testing function
dash_capstyle ['butt' | 'round' | 'projecting']
dash_joinstyle ['miter' | 'round' | 'bevel']
dashes sequence of on/off ink in points
data (np.array xdata, np.array ydata)
figure a matplotlib.figure.Figure instance
label any string
linestyle or ls [ '-' | '--' | '-.' | ':' | 'steps' | …]
linewidth or lw float value in points
lod [True | False]
marker [ '+' | ',' | '.' | '1' | '2' | '3' | '4' ]
markeredgecolor or mec any matplotlib color
markeredgewidth or mew float value in points
markerfacecolor or mfc any matplotlib color
markersize or ms float
markevery [ None | integer | (startind, stride) ]
picker used in interactive line selection
pickradius the line pick selection radius
solid_capstyle ['butt' | 'round' | 'projecting']
solid_joinstyle ['miter' | 'round' | 'bevel']
transform a matplotlib.transforms.Transform instance
visible [True | False]
xdata np.array
ydata np.array
zorder any number

获取参数列表:

plt.setp(lines)

多个图像区域(figures)和轴(axes)下作图

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)

plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')

plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()

result:
Matplotlib-PyplotTutorial(下)_第3张图片

figure()函数是可选的,因为 figure(1)会默认被执行
如果不指定 subplot(), subplot(111)也是默认的

subplot()包括 行号,列号,图号,如果 行号*列号<10
三个参数可以写在一个参数里
所以 subplot(111)就相当于subplot(1,1,1)

plt.figure(1) 
###
plt.subplot(211)         
plt.plot([1, 2, 3])

plt.subplot(212)           
plt.plot([4, 5, 6])

plt.figure(2)  
###             
plt.plot([4, 5, 6])        

plt.figure(1)
###      
plt.subplot(211)
plt.title('Easy as 1, 2, 3')

plt.show()

多个figures的情况下,可以通过figure()选择不同的figure
通过subplot()选择不同的plot

result:
Matplotlib-PyplotTutorial(下)_第4张图片
Matplotlib-PyplotTutorial(下)_第5张图片

cla() 清除当前plot
clf()清除当前figure

text()

plt.plot([1,5],[1,5])
plt.text(3,2.5,'y=x')
plt.show()

result:
Matplotlib-PyplotTutorial(下)_第6张图片

xlabel(), ylabel() and title()分别在固定的地方标示文本

plt.plot([1,5],[1,5],'b')
t = plt.text(3,2.5,'y=x')
plt.setp(t,'color','red')
plt.show()

result:

Matplotlib-PyplotTutorial(下)_第7张图片

文本也可以使用 setp() 来改变其属性

文本中使用数学表达式

plt.text(.5, .5, r'$\sigma_i=15$')
plt.show()

result:
Matplotlib-PyplotTutorial(下)_第8张图片

matplotlib 内建数学表达式: Writing mathematical expressions.

annotate()

plt.annotate('(0,0)', xy=(0, 0), xytext=(1, 1),
             arrowprops=dict(facecolor='black', shrink=0.05),)
plt.ylim(0, 2)
plt.xlim(0, 2)
plt.show()

result:
Matplotlib-PyplotTutorial(下)_第9张图片

产生正态分布随机数,画直线, log函数, 对称log函数,分对数函数

from matplotlib.ticker import NullFormatter  

np.random.seed(19680801)

y = np.random.normal(loc=0.5, scale=0.4, size=1000)
y = y[(y > 0) & (y < 1)]
y.sort()
x = np.arange(len(y))

# linear
plt.subplot(221)
plt.plot(x, y)
plt.yscale('linear')
plt.title('linear')
plt.grid(True)


# log
plt.subplot(222)
plt.plot(x, y)
plt.yscale('log')
plt.title('log')
plt.grid(True)


# symmetric log
plt.subplot(223)
plt.plot(x, y - y.mean())
plt.yscale('symlog', linthreshy=0.01)
plt.title('symlog')
plt.grid(True)

# logit
plt.subplot(224)
plt.plot(x, y)
plt.yscale('logit')
plt.title('logit')
plt.grid(True)

plt.gca().yaxis.set_minor_formatter(NullFormatter())
plt.subplots_adjust(top=0.92, bottom=0.08, left=0.10, right=0.95, hspace=0.35,
                    wspace=0.35)

plt.show()

result:
Matplotlib-PyplotTutorial(下)_第10张图片

欢迎关注我的博客Vagitus – Pythonista

你可能感兴趣的:(Matplotlib-PyplotTutorial(下))