Matplotlib学习(一)基本用法

原文地址 https://morvanzhou.github.io/tutorials/data-manipulation/plt/2-2-figure/

(1)基本用法

#使用import导入模块matplotlib.pyplot,并简写成plt 使用import导入模块numpy,并简写成np
import matplotlib.pyplot as plt
import numpy as np

#使用np.linspace定义x:范围是(-1,1);个数是50. 仿真一维数据组(x ,y)表示曲线1
x = np.linspace(-1, 1, 50)
y = 2*x + 1

#使用plt.figure定义一个图像窗口. 使用plt.plot画(x ,y)曲线. 使用plt.show显示图像.
plt.figure()
plt.plot(x, y)
plt.show()

(2)简单的线条

使用plt.figure定义一个图像窗口:编号为3;大小为(8, 5). 使用plt.plot画(x ,y2)曲线. 使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0;曲线的类型(linestyle)为虚线. 使用plt.show显示图像.

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2

## 第一个figure
plt.figure(num=1)
plt.plot(x, y1)
plt.show()

## 第二个figure(编号3)
plt.figure(num=3, figsize=(8, 5),)
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
plt.show()

Matplotlib学习(一)基本用法_第1张图片

(3)设置坐标轴1 --调整名字和间隔

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2

plt.figure()
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

##坐标轴范围和label
plt.xlim((-1, 2))
plt.ylim((-2, 3))
plt.xlabel('I am x')
plt.ylabel('I am y')

#新坐标轴显示范围
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

plt.show()

注:例子中plt.yticks()中的字符:
①空格显示出来需要在前面加
②显示α,可以写成 \alpha
③$ $是设置了一种字体,r是正则表达
Matplotlib学习(一)基本用法_第2张图片

(4)设置坐标轴2–设置边框,调整坐标轴位置

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2

plt.figure()
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

##坐标轴范围和label
plt.xlim((-1, 2))
plt.ylim((-2, 3))
plt.xlabel('I am x')
plt.ylabel('I am y')

#新坐标轴显示范围
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

## 使用plt.gca获取当前坐标轴信息. 
## 使用.spines设置边框,使用.set_color设置边框颜色:默认白色;
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')


## 调整坐标轴 
## 设置x坐标刻度数字或名称的位置:bottom.(所有位置:top,bottom,both,default,none)
## 使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))

ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

plt.show()

Matplotlib学习(一)基本用法_第3张图片

(5) Legend 图例

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2

plt.figure(num=1)

# set line syles
l1, = plt.plot(x, y1, label='linear line')
l2, = plt.plot(x, y2, color='red', linewidth=1.0, linestyle='--', label='square line')

plt.legend(loc='upper right')
plt.show()

单独修改之前的 label 信息, 给不同类型的线条设置图例信息:(之前的l1和l2一定要加逗号 ‘,=’,才能传给handles)

plt.legend(handles=[l1, l2], labels=['up', 'down'],  loc='best')

其中’loc’参数有多种,’best’表示自动分配最佳位置,其余的如下:

 'best' : 0,          
 'upper right'  : 1,
 'upper left'   : 2,
 'lower left'   : 3,
 'lower right'  : 4,
 'right'        : 5,
 'center left'  : 6,
 'center right' : 7,
 'lower center' : 8,
 'upper center' : 9,
 'center'       : 10,

你可能感兴趣的:(matplotlib,python)